package sounds;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;

import util.AudioClipBalanced;
/** <p>An object implementing {@link java.applet.AudioClip java.applet.AudioClip} with the data from drum-17.wav hard-coded into it.</p>
 * <p>Created with the <a href="http://stephengware.com/projects/soundtoclass">SoundToClass tool</a>, by Stephen G. Ware.</p>
 * @author Stephen G. Ware */
public class Drum17 implements AudioClipBalanced {
	private byte[] data;
	private AudioFormat format;
	private DataLine.Info lineInfo = null;
	private PlayThread playThread = null;
	private LoopThread loopThread = null;
	private static final long serialVersionUID = 22040;
	private static byte[] data0(){ return new byte[] {3,0,-55,21,-83,42,86,61,15,77,-26,88,-42,96,127,100,16,100,-30,95,-117,88,-33,78,-77,67,-30,55,73,44,-74,33,-102,24,110,17,81,12,65,9,5,8,1,8,-86,8,121,9,-72,9,11,9,-102,6,75,2,-6,-5,-60,-13,15,-22,27,-33,-102,-45,80,-56,-17,-67,72,-75,-47,-82,45,-85,-109,-86,54,-83,-31,-78,94,-69,44,-58,-108,-46,-13,-33,70,-19,47,-6,-45,5,-72,15,122,23,-48,28,14,32,83,33,1,33,115,31,-104,29,-40,27,-49,26,-18,26,124,28,-71,31,-113,36,-71,42,-46,49,73,57,102,64,108,70,-78,74,-124,76,-109,75,52,71,122,63,106,52,100,38,20,22,-30,3,-56,-16,-65,-35,-95,-53,-122,-69,-33,-83,108,-93,-98,-100,-103,-103,106,-102,-80,-98,10,-90,-46,-81,103,-69,-29,-57,-76,-44,29,-31,124,-20,-124,-10,-91,-2,53,5,10,10,112,13,-73,15,37,17,118,18,-2,19,10,22,-62,24,-109,28,89,33,-27,38,13,45,64,51,76,57,-121,62,-111,66,-30,68,79,69,110,67,75,63,-21,56,-114,48,-87,38,117,27,-107,15,-103,3,19,-8,-91,-19,112,-28,-34,-36,36,-41,69,-45,71,-47,-81,-48,73,-47,-75,-46,-116,-44,117,-42,-9,-41,-24,-40,23,-39,-125,-40,54,-41,116,-43,-112,-45,-33,-47,-46,-48,-78,-48,35,-46,82,-43,-127,-38,-79,-31,-70,-22,-83,-11,25,2,125,15,57,29,-15,42,-24,55,-120,67,70,77,-89,84,118,89,119,91,-97,90,9,87,0,81,-60,72,-53,62,-100,51,-88,39,-97,27,-85,15,79,4,-37,-7,-121,-16,-110,-24,-65,-31,26,-36,-108,-41,0,-44,80,-47,30,-49,90,-51,-7,-53,-34,-54,20,-54,-115,-55,105,-55,-53,-55,-55,-54,-126,-52,32,-49,-68,-46,86,-41,-19,-36,76,-29,-103,-22,-121,-14,-35,-6,94,3,-102,11,-80,19,42,27,-26,33,-118,39,72,44,-10,47,-127,50,14,52,-114,52,85,52,95,51,-30,49,-17,47,-68,45,66,43,-109,40,-68,37,-85,34,-122,31,-22,27,-12,23,124,19,-119,14,39,9,10,3,100,-4,56,-11,-71,-19,22,-26,75,-34,-85,-42,105,-49,-44,-56,25,-61,106,-66,-5,-70,-6,-72,-127,-72,-104,-71,85,-68,-79,-64,-112,-58,-41,-51,49,-42,-70,-33,8,-22,-32,-12,4,0,-19,10,-61,21,-1,31,108,41,-77,49,-38,56,-99,62,-36,66,-124,69,-122,70,3,70,-2,67,-107,64,-13,59,86,54,-41,47,-61,40,78,33,-78,25,66,18,-13,10,-14,3,127,-3,126,-9,69,-14,101,-19,8,-23,34,-27,-109,-31,126,-34,123,-37,-78,-40,30,-42,-77,-45,-92,-47,-56,-49,112,-50,-105,-51,120,-51,16,-50,-95,-49,46,-46,-62,-43,92,-38,-53,-33,55,-26,90,-19,-1,-12,-12,-4,-48,4,-88,12,30,20,-10,26,-11,32,52,38,-120,42,-19,45,103,48,5,50,-9,50,77,51,37,51,-111,50,-64,49,-113,48,28,47,69,45,1,43,72,40,-64,36,89,32,4,27,-105,20,69,13,-69,4,69,-5,25,-15,107,-26,-50,-37,71,-47,-128,-57,-44,-66,-69,-73,-119,-78,-115,-81,-30,-82,-71,-80,-9,-76,102,-69,-33,-61,-20,-51,35,-39,-6,-28,-41,-16,108,-4,54,7,-57,16,-30,24,51,31,-11,35,32,39,-54,40,41,41,-63,40,-57,39,-102,38,121,37,-98,36,81,36,-126,36,65,37,85,38,-86,39,-44,40,-108,41,-101,41,-109,40,111,38,-74,34,-128,29,-41,22,-38,14,-4,5,59,-4,49,-14,68,-24,-11,-34,-71,-42,-60,-49,106,-54,-34,-58,49,-59,81,-59,10,-57,29,-54,57,-50,4,-45,6,-40,17,-35,-68,-31,-25,-27,102,-23,37,-20,112,-18,101,-16,61,-14,76,-12,-67,-10,33,-6,-108,-2,58,4,-2,10,9,19,6,28,-102,37,99,47,-60,56,89,65,127,72,-76,77,-108,80,-52,80,42,78,-85,72,-128,64,-13,53,-97,41,-47,27,84,13,-48,-2,-13,-16,126,-28,-92,-39,-8,-48,-88,-54,-48,-58,110,-59,17,-58,116,-56,53,-52,-65,-48,-76,-43,112,-38,-77,-34,28,-30,-109,-28,-2,-27,-120,-26,113,-26,-11,-27,-127,-27,89,-27,32,-26,5,-24,87,-21,39,-16,97,-10,30,-2,3,7,-94,16,124,26,49,36,54,45,-8,52,19,59,40,63,18,65,-64,64,58,62,-57,57,-73,51,114,44,114,36,56,28,63,20,14,13,-76,6,-113,1,-93,-3,-25,-6,80,-7,71,-8,-96,-9,-20,-10,-43,-11,22,-12,58,-15,55,-19,7,-24,-59,-31,-54,-38,75,-45,-23,-53,14,-59,97,-65,74,-69,91,-71,-23,-71,26,-67,22,-61,127,-53,104,-42,38,-29,62,-15,2,0,-107,14,-95,28,67,41,12,52,87,60,46,66,72,69,-62,69,-51,67,-66,63,31,58,106,51,36,44,-37,36,3,30,-16,23,-34,18,-11,14,32,12,100,10,62,9}; }
	private static byte[] data1(){ return new byte[] {117,8,-73,7,-109,6,-20,4,38,2,70,-2,60,-7,22,-13,44,-20,-119,-28,-69,-36,37,-43,81,-50,-90,-56,-124,-60,60,-62,2,-62,-27,-61,-52,-57,-106,-51,-25,-44,94,-35,127,-26,-81,-17,-70,-8,12,1,87,8,90,14,-39,18,18,22,14,24,-4,24,23,25,-27,24,-78,24,-60,24,110,25,-52,26,17,29,32,32,-35,35,-3,39,53,44,9,48,18,51,-28,52,24,53,-117,51,-59,47,-29,41,-24,33,24,24,-26,12,-120,0,-87,-13,-41,-26,-76,-38,-34,-49,-96,-58,122,-65,-89,-70,82,-72,121,-72,-28,-70,86,-65,118,-59,-54,-52,-30,-44,66,-35,-109,-27,93,-19,109,-12,113,-6,-118,-1,-78,3,-9,6,-98,9,-83,11,-73,13,-51,15,47,18,-42,20,33,24,-40,27,-6,31,69,36,-128,40,115,44,-59,47,50,50,106,51,83,51,-81,49,-126,46,-36,41,-39,35,-39,28,-17,20,-123,12,12,4,-66,-5,56,-12,89,-19,-116,-25,-17,-30,122,-33,86,-35,20,-36,-79,-37,-13,-37,-113,-36,107,-35,32,-34,-84,-34,-23,-34,-45,-34,114,-34,-18,-35,121,-35,64,-35,-117,-35,115,-34,108,-32,-122,-29,-33,-25,123,-19,42,-12,16,-4,-59,4,18,14,109,23,-66,32,120,41,66,49,-57,55,-84,60,-27,63,58,65,-85,64,73,62,66,58,-70,52,9,46,106,38,72,30,-10,21,-97,13,-108,5,4,-2,37,-9,29,-15,-65,-21,43,-25,72,-29,17,-32,126,-35,75,-37,125,-39,4,-40,-32,-42,15,-42,-115,-43,112,-43,-59,-43,-85,-42,26,-40,68,-38,36,-35,-63,-32,20,-27,-16,-23,117,-17,112,-11,-83,-5,16,2,63,8,82,14,11,20,46,25,-99,29,103,33,109,36,-85,38,35,40,-37,40,-12,40,-126,40,-122,39,43,38,125,36,125,34,67,32,-58,29,20,27,57,24,5,21,127,17,-88,13,119,9,8,5,43,0,-14,-6,-124,-11,-24,-17,85,-22,-64,-28,88,-33,87,-38,-45,-43,6,-46,-10,-50,-42,-52,-71,-53,-77,-53,-64,-52,-9,-50,75,-46,-89,-42,-4,-37,10,-30,-28,-24,79,-16,12,-8,2,0,-51,7,-117,15,-28,22,-77,29,-84,35,-17,40,54,45,121,48,-100,50,-97,51,-115,51,111,50,78,48,74,45,-120,41,28,37,46,32,-21,26,111,21,3,16,-120,10,56,5,40,0,95,-5,19,-9,-14,-14,56,-17,-66,-21,-95,-24,-47,-27,50,-29,-58,-32,-99,-34,-79,-36,29,-37,-51,-39,-12,-40,-121,-40,-68,-40,116,-39,-11,-38,37,-35,26,-32,-60,-29,5,-24,-15,-20,98,-14,41,-8,31,-2,15,4,-24,9,-113,15,-65,20,79,25,100,29,-59,32,123,35,-122,37,-35,38,-74,39,1,40,-33,39,91,39,-124,38,93,37,-31,35,17,34,-30,31,88,29,57,26,127,22,45,18,34,13,-106,7,69,1,104,-6,45,-13,-80,-21,82,-28,29,-35,112,-42,-109,-48,-54,-53,80,-56,80,-58,-33,-59,29,-57,-15,-55,65,-50,-16,-45,-71,-38,77,-30,102,-22,-122,-14,-98,-6,59,2,43,9,54,15,33,20,34,24,19,27,26,29,51,30,-53,30,-18,30,-45,30,-93,30,125,30,-122,30,-58,30,42,31,-86,31,42,32,112,32,88,32,-89,31,73,30,19,28,-25,24,-81,20,-109,15,-95,9,33,3,32,-4,-22,-12,-31,-19,57,-25,94,-31,86,-36,99,-40,-81,-43,50,-44,2,-44,-35,-44,-67,-42,85,-39,-123,-36,-16,-33,-123,-29,-4,-26,69,-22,52,-19,-57,-17,32,-14,90,-12,-124,-10,-36,-8,93,-5,-125,-2,55,2,-90,6,-92,11,96,17,-109,23,12,30,-126,36,-102,42,21,48,-117,52,-76,55,71,57,31,57,19,55,43,51,-125,45,78,38,-16,29,-109,20,-66,10,-38,0,84,-9,-81,-18,1,-25,-82,-32,-36,-37,-107,-40,-18,-42,-117,-42,96,-41,27,-39,122,-37,51,-34,-13,-32,-128,-29,-74,-27,110,-25,-84,-24,121,-23,9,-22,107,-22,-9,-22,-74,-21,31,-19,75,-17,80,-14,84,-10,31,-5,-27,0,76,7,35,14,-4,20,-71,27,-17,33,64,39,123,43,77,46,-70,47,-102,47,12,46,36,43,38,39,78,34,-39,28,52,23,-112,17,94,12,-106,7,125,3,22,0,105,-3,104,-5,-55,-7,94,-8,1,-9,110,-11,-109,-13,22,-15,-2,-19,76,-22,16,-26,-127,-31,-57,-36,55,-40,35,-44,-26,-48,-68,-50,10,-50,-11,-50,-103,-47,8,-42,3,-36,-105,-29,92,-20,-9,-11,-1,-1,-21,9,119,19,49,28,-88,35,-106,41,-25,45,-128,48,89,49,-94,48,123,46,71,43,67,39,-54,34,43,30,-76,25,-107,21,-10,17,-20,14,-128,12,-97,10,14,9,-90,7,50,6,-117,4,-124,2,-40,-1,-126,-4,124,-8,-31,-13,-40,-18,123,-23,19,-28,-19,-34,91,-38,-103,-42,-14,-45,125,-46,121,-46,-41,-45,-111,-42,-112,-38,-98,-33,114,-27}; }
	private static byte[] data2(){ return new byte[] {-51,-21,56,-14,-89,-8,-84,-2,29,4,-59,8,124,12,110,15,-107,17,11,19,-25,19,-115,20,20,21,-77,21,-116,22,-71,23,80,25,76,27,-121,29,-24,31,50,34,37,36,124,37,-5,37,105,37,-84,35,-120,32,2,28,49,22,56,15,106,7,-28,-2,19,-10,85,-19,17,-27,-84,-35,88,-41,86,-46,-23,-50,21,-51,-25,-52,61,-50,-21,-48,-63,-44,120,-39,-70,-34,79,-28,-14,-23,93,-17,109,-12,-30,-8,-28,-4,85,0,77,3,-32,5,20,8,70,10,119,12,-53,14,50,17,-14,19,-33,22,-17,25,2,29,-21,31,-119,34,-85,36,29,38,-78,38,97,38,-3,36,-118,34,27,31,-68,26,-75,21,9,16,3,10,-28,3,-29,-3,84,-8,53,-13,-70,-18,6,-21,22,-24,6,-26,-108,-28,-61,-29,100,-29,112,-29,-93,-29,-5,-29,62,-28,-128,-28,-86,-28,-66,-28,-30,-28,34,-27,-91,-27,-117,-26,-33,-25,-18,-23,-69,-20,76,-16,-79,-12,-82,-7,110,-1,-85,5,44,12,-80,18,19,25,14,31,88,36,-59,40,17,44,65,46,36,47,-56,46,43,45,112,42,-78,38,23,34,-32,28,53,23,104,17,125,11,-78,5,49,0,10,-5,119,-10,65,-14,-116,-18,82,-21,-118,-24,62,-26,59,-28,-114,-30,43,-31,27,-32,88,-33,-29,-34,-52,-34,22,-33,-39,-33,9,-31,-54,-30,18,-27,-21,-25,62,-21,-2,-18,48,-13,-74,-9,116,-4,62,1,-12,5,-116,10,-21,14,-25,18,85,22,98,25,-48,27,-67,29,7,31,-52,31,12,32,-35,31,60,31,65,30,-9,28,98,27,-117,25,114,23,39,21,-83,18,-17,15,-16,12,-77,9,64,6,-94,2,-59,-2,-77,-6,-118,-10,81,-14,53,-18,35,-22,72,-26,-66,-30,-96,-33,11,-35,12,-37,-76,-39,32,-39,78,-39,66,-38,9,-36,-109,-34,-36,-31,-50,-27,61,-22,63,-17,-98,-12,64,-6,0,0,-90,5,65,11,-103,16,-111,21,-13,25,-37,29,14,33,-109,35,72,37,51,38,94,38,-65,37,112,36,109,34,-25,31,-47,28,92,25,-112,21,-103,17,-113,13,116,9,96,5,106,1,-97,-3,29,-6,-70,-10,-108,-13,-93,-16,-7,-19,-117,-21,84,-23,73,-25,-127,-27,0,-28,-64,-30,-37,-31,69,-31,33,-31,110,-31,48,-30,-128,-29,90,-27,-65,-25,-85,-22,-10,-19,-50,-15,-21,-11,88,-6,-37,-2,81,3,-55,7,11,12,4,16,-124,19,-84,22,82,25,126,27,30,29,65,30,-14,30,57,31,25,31,-91,30,-27,29,-45,28,125,27,-50,25,-33,23,-97,21,-8,18,-29,15,99,12,122,8,54,4,-124,-1,121,-6,63,-11,-16,-17,-67,-22,-68,-27,25,-31,21,-35,-50,-39,115,-41,19,-42,-50,-43,-97,-42,-111,-40,123,-37,93,-33,-4,-29,60,-23,-55,-18,-125,-12,45,-6,-80,-1,-67,4,78,9,34,13,109,16,7,19,10,21,104,22,107,23,18,24,127,24,-60,24,-8,24,45,25,104,25,-98,25,-55,25,-39,25,-81,25,42,25,61,24,-60,22,-58,20,19,18,-69,14,-57,10,79,6,-125,1,99,-4,46,-9,19,-14,76,-19,10,-23,96,-27,110,-30,88,-32,28,-33,-68,-34,42,-33,62,-32,-13,-31,15,-28,115,-26,5,-23,-96,-21,48,-18,-96,-16,-30,-14,21,-11,54,-9,100,-7,-100,-5,1,-2,-77,0,-53,3,57,7,-9,10,29,15,112,19,-27,23,51,28,57,32,-66,35,-112,38,115,40,74,41,-13,40,96,39,-114,36,-109,32,-108,27,-48,21,94,15,-101,8,-67,1,31,-5,4,-11,-124,-17,-38,-22,37,-25,107,-28,-57,-30,-15,-31,-14,-31,-108,-30,-77,-29,36,-27,-83,-26,60,-24,-92,-23,-24,-22,-21,-21,-51,-20,-101,-19,102,-18,89,-17,122,-16,19,-14,45,-12,-46,-10,23,-6,-49,-3,35,2,-45,6,-70,11,-104,16,79,21,-85,25,94,29,85,32,84,34,95,35,99,35,100,34,126,32,-43,29,-124,26,-51,22,-49,18,-51,14,-2,10,91,7,30,4,65,1,-49,-2,-46,-4,3,-5,98,-7,-51,-9,38,-10,94,-12,77,-14,-30,-17,60,-19,79,-22,79,-25,75,-28,122,-31,19,-33,65,-35,59,-36,38,-36,48,-35,83,-33,-90,-30,-11,-26,78,-20,108,-14,19,-7,-2,-1,-41,6,114,13,-118,19,-47,24,20,29,84,32,113,34,106,35,88,35,72,34,-126,32,32,30,93,27,106,24,118,21,-98,18,1,16,-90,13,-102,11,-42,9,52,8,-105,6,-6,4,39,3,44,1,-61,-2,-15,-5,-54,-8,65,-11,-100,-15,-69,-19,-6,-23,100,-26,79,-29,-55,-32,12,-33,33,-34,50,-34,53,-33,37,-31,-15,-29,123,-25,-112,-21,13,-16,-103,-12,63,-7,-91,-3,-66,1,92,5,100,8,-15,10,-1,12,-107,14,-66,15,-71,16,-109,17,96,18,68,19,58,20,99,21,-89,22,4,24,79,25,-120,26,95,27}; }
	private static byte[] data3(){ return new byte[] {-44,27,-96,27,-68,26,18,25,121,22,2,19,-75,14,-81,9,43,4,52,-2,16,-8,7,-14,76,-20,50,-25,-63,-30,66,-33,-70,-36,87,-37,0,-37,-76,-37,81,-35,-66,-33,-55,-30,68,-26,8,-22,-26,-19,-65,-15,99,-11,-58,-8,-37,-5,-69,-2,63,1,-103,3,-83,5,-63,7,-48,9,-21,11,-1,13,65,16,-116,18,-39,20,19,23,27,25,-33,26,62,28,26,29,87,29,-17,28,-58,27,-26,25,81,23,30,20,116,16,85,12,-11,7,127,3,19,-1,-8,-6,18,-9,-94,-13,-85,-16,59,-18,98,-20,-7,-22,-1,-23,105,-23,29,-23,13,-23,33,-23,71,-23,-126,-23,-61,-23,22,-22,124,-22,24,-21,-31,-21,2,-19,109,-18,87,-16,-59,-14,-88,-11,23,-7,-38,-4,26,1,-104,5,65,10,-48,14,77,19,111,23,24,27,33,30,101,32,-26,33,-128,34,70,34,34,33,79,31,-85,28,-122,25,-40,21,-35,17,-63,13,124,9,72,5,51,1,86,-3,-46,-7,-119,-10,-115,-13,-20,-16,-109,-18,-99,-20,-36,-22,98,-23,41,-24,57,-25,-115,-26,43,-26,21,-26,85,-26,-8,-26,-19,-25,89,-23,38,-21,96,-19,-9,-17,-41,-14,16,-10,-126,-7,28,-3,-60,0,84,4,-35,7,52,11,73,14,-5,16,94,19,93,21,-21,22,17,24,-63,24,19,25,7,25,-98,24,-25,23,-21,22,-87,21,39,20,115,18,-127,16,117,14,38,12,-89,9,-1,6,43,4,73,1,49,-2,11,-5,-46,-9,-92,-12,-112,-15,-110,-18,-57,-21,62,-23,16,-25,71,-27,-13,-29,29,-29,-45,-30,24,-29,-22,-29,85,-27,73,-25,-59,-23,-73,-20,1,-16,-75,-13,-90,-9,-56,-5,1,0,33,4,66,8,47,12,-40,15,28,19,2,22,118,24,95,26,-61,27,-118,28,-50,28,125,28,-85,27,81,26,-106,24,106,22,-15,19,48,17,64,14,65,11,30,8,1,5,-28,1,-26,-2,18,-4,80,-7,-72,-10,74,-12,8,-14,13,-16,39,-18,-125,-20,13,-21,-40,-23,-21,-24,59,-24,-32,-25,-38,-25,46,-24,-27,-24,0,-22,-119,-21,119,-19,-61,-17,93,-14,75,-11,-128,-8,-40,-5,80,-1,-79,2,24,6,91,9,97,12,28,15,-123,17,-93,19,80,21,-89,22,-114,23,36,24,93,24,70,24,-31,23,59,23,79,22,32,21,-81,19,2,18,25,16,-28,13,96,11,-106,8,-124,5,66,2,-77,-2,-2,-6,35,-9,87,-13,-101,-17,22,-20,-47,-24,5,-26,-64,-29,29,-30,49,-31,-7,-32,-112,-31,-27,-30,-24,-28,-105,-25,-51,-22,116,-18,95,-14,106,-10,123,-6,124,-2,60,2,-83,5,-78,8,84,11,-107,13,101,15,-56,16,-26,17,-61,18,96,19,-31,19,49,20,126,20,-82,20,-52,20,-56,20,-92,20,69,20,-101,19,-95,18,63,17,-125,15,76,13,-99,10,-105,7,44,4,-97,0,-47,-4,1,-7,70,-11,-56,-15,-88,-18,-11,-21,-68,-23,33,-24,27,-25,-76,-26,-38,-26,-128,-25,-102,-24,10,-22,-68,-21,-104,-19,-109,-17,-110,-15,-109,-13,122,-11,105,-9,90,-7,73,-5,88,-3,100,-1,-72,1,51,4,-27,6,-73,9,-68,12,-44,15,-24,18,-37,21,-126,24,-42,26,-107,28,-65,29,33,30,-61,29,-123,28,120,26,-96,23,28,20,21,16,-108,11,-42,6,9,2,85,-3,-4,-8,-6,-12,-127,-15,-91,-18,108,-20,-22,-22,-15,-23,-115,-23,-103,-23,9,-22,-69,-22,-109,-21,-126,-20,108,-19,93,-18,40,-17,12,-16,-39,-16,-48,-15,-39,-14,19,-12,-95,-11,-128,-9,-59,-7,94,-4,77,-1,-120,2,9,6,-110,9,23,13,111,16,-118,19,39,22,67,24,-80,25,120,26,-119,26,-23,25,-92,24,-40,22,-114,20,-10,17,30,15,60,12,97,9,-90,6,12,4,-74,1,-107,-1,-60,-3,5,-4,112,-6,-34,-8,83,-9,-63,-11,6,-12,44,-14,56,-16,47,-18,47,-20,59,-22,-128,-24,22,-25,31,-26,-77,-27,-15,-27,-15,-26,-90,-24,48,-21,76,-18,38,-14,120,-10,37,-5,0,0,-55,4,110,9,-65,13,-122,17,-92,20,24,23,-50,24,-64,25,-3,25,-116,25,-101,24,50,23,-127,21,-108,19,-98,17,-96,15,-77,13,-27,11,44,10,-92,8,20,7,-115,5,-13,3,61,2,107,0,89,-2,7,-4,-119,-7,-40,-10,33,-12,86,-15,-92,-18,41,-20,0,-22,82,-24,34,-25,-108,-26,-86,-26,110,-25,-49,-24,-48,-22,80,-19,59,-16,110,-13,-75,-10,25,-6,92,-3,118,0,71,3,-72,5,-34,7,-75,9,53,11,109,12,121,13,101,14,61,15,14,16,-39,16,-81,17,-122,18,82,19,8,20,-104,20,-30,20,-45,20,90,20,90,19,-31,17,-59,15,21,13,-28,9,54,6,70,2,3,-2,-76,-7,114,-11,111,-15,-41,-19,-74,-22,47,-24,91,-26,62,-27,-29,-28,55,-27,48,-26,-70,-25}; }
	private static byte[] data4(){ return new byte[] {-71,-23,13,-20,-96,-18,86,-15,20,-12,-58,-10,77,-7,-64,-5,11,-2,45,0,52,2,10,4,-27,5,-72,7,-123,9,74,11,27,13,-24,14,-89,16,71,18,-73,19,-17,20,-47,21,85,22,94,22,-8,21,4,21,-112,19,-96,17,62,15,-118,12,-120,9,72,6,7,3,-74,-1,-89,-4,-80,-7,5,-9,-85,-12,-83,-14,21,-15,-47,-17,-40,-18,51,-18,-58,-19,-106,-19,-119,-19,-102,-19,-46,-19,21,-18,127,-18,1,-17,-78,-17,-105,-16,-79,-15,15,-13,-69,-12,-59,-10,29,-7,-61,-5,-90,-2,-53,1,23,5,118,8,-73,11,-28,14,-49,17,95,20,124,22,21,24,24,25,-115,25,92,25,-102,24,77,23,121,21,60,19,-90,16,-54,13,-41,10,-72,7,-92,4,-110,1,-84,-2,-15,-5,97,-7,3,-9,-35,-12,-12,-14,75,-15,-44,-17,-112,-18,-122,-19,-69,-20,40,-20,-42,-21,-59,-21,-7,-21,125,-20,70,-19,101,-18,-44,-17,-111,-15,-108,-13,-52,-11,71,-8,-20,-6,-86,-3,123,0,45,3,-20,5,119,8,-30,10,-10,12,-34,14,116,16,-69,17,-82,18,74,19,-97,19,-96,19,98,19,-45,18,23,18,20,17,-31,15,122,14,-25,12,50,11,83,9,64,7,31,5,-47,2,-124,0,24,-2,-102,-5,39,-7,-78,-10,104,-12,41,-14,32,-16,71,-18,-69,-20,124,-21,-105,-22,13,-22,-14,-23,56,-22,-21,-22,8,-20,-115,-19,112,-17,-87,-15,29,-12,-32,-10,-48,-7,-33,-4,2,0,13,3,33,6,8,9,-59,11,55,14,102,16,70,18,-67,19,-38,20,-128,21,-54,21,-89,21,29,21,58,20,-3,18,117,17,-87,15,-96,13,118,11,46,9,-50,6,100,4,-9,1,-102,-1,86,-3,30,-5,3,-7,4,-9,47,-11,-121,-13,-1,-15,-89,-16,123,-17,-121,-18,-48,-19,78,-19,19,-19,29,-19,111,-19,14,-18,-5,-18,57,-16,-59,-15,-107,-13,-101,-11,-26,-9,87,-6,-16,-4,-111,-1,46,2,-61,4,71,7,-103,9,-77,11,-103,13,56,15,-106,16,-100,17,96,18,-45,18,8,19,-15,18,-97,18,21,18,74,17,77,16,23,15,-87,13,30,12,68,10,67,8,10,6,-95,3,34,1,111,-2,-92,-5,-45,-8,2,-10,90,-13,-54,-16,124,-18,127,-20,-28,-22,-61,-23,24,-23,-9,-24,94,-23,75,-22,-72,-21,-107,-19,-34,-17,112,-14,62,-11,32,-8,28,-5,7,-2,-37,0,118,3,-44,5,-16,7,-44,9,99,11,-85,12,-63,13,-100,14,81,15,-47,15,59,16,125,16,-81,16,-74,16,-93,16,101,16,-10,15,74,15,92,14,38,13,-81,11,-33,9,-59,7,101,5,-47,2,33,0,77,-3,120,-6,-74,-9,31,-11,-44,-14,-54,-16,32,-17,-32,-19,8,-19,-84,-20,-90,-20,15,-19,-62,-19,-58,-18,-9,-17,91,-15,-39,-14,107,-12,8,-10,-100,-9,68,-7,-22,-6,-97,-4,93,-2,35,0,9,2,13,4,38,6,74,8,-122,10,-63,12,-21,14,-9,16,-63,18,71,20,106,21,22,22,65,22,-31,21,-21,20,101,19,92,17,-46,14,-3,11,-58,8,110,5,-5,1,-94,-2,119,-5,-121,-8,-21,-11,-78,-13,-23,-15,-105,-16,-91,-17,21,-17,-35,-18,-22,-18,56,-17,-90,-17,50,-16,-45,-16,123,-15,45,-14,-22,-14,-72,-13,-97,-12,-89,-11,-51,-10,52,-8,-45,-7,-81,-5,-52,-3,10,0,-120,2,31,5,-65,7,73,10,-68,12,-20,14,-38,16,82,18,102,19,-11,19,17,20,-91,19,-50,18,-112,17,-11,15,34,14,18,12,-12,9,-42,7,-71,5,-82,3,-54,1,-5,-1,104,-2,-40,-4,103,-5,0,-6,-98,-8,72,-9,-34,-11,112,-12,-2,-14,-117,-15,50,-16,-22,-18,-36,-19,5,-19,-112,-20,115,-20,-40,-20,-72,-19,27,-17,1,-15,85,-13,26,-10,56,-7,-115,-4,-2,-1,103,3,-74,6,-49,9,-113,12,-39,14,-69,16,22,18,-13,18,80,19,52,19,-67,18,-21,17,-33,16,-100,15,74,14,-37,12,116,11,7,10,-93,8,85,7,-16,5,-105,4,29,3,-97,1,5,0,73,-2,106,-4,110,-6,100,-8,87,-10,76,-12,90,-14,-104,-16,19,-17,-19,-19,29,-19,-60,-20,-34,-20,112,-19,115,-18,-29,-17,-79,-15,-53,-13,29,-10,-126,-8,-1,-6,117,-3,-50,-1,0,2,-9,3,-71,5,81,7,-92,8,-57,9,-56,10,-87,11,111,12,44,13,-56,13,111,14,-10,14,115,15,-50,15,2,16,2,16,-73,15,36,15,49,14,-20,12,56,11,39,9,-67,6,9,4,43,1,25,-2,3,-5,-5,-9,30,-11,-109,-14,76,-16,126,-18,29,-19,65,-20,-20,-21,5,-20,-95,-20,-104,-19,-16,-18,-127,-16,77,-14,56,-12,54,-10,53,-8,34,-6,14,-4,-31,-3,-86,-1,84,1,-19,2,-126,4,12,6,-105,7,4,9,-127,10,-28,11,61,13,109,14,122,15,78,16}; }
	private static byte[] data5(){ return new byte[] {-23,16,46,17,42,17,-64,16,4,16,-33,14,105,13,-98,11,-99,9,93,7,-7,4,-122,2,15,0,-69,-3,121,-5,104,-7,-118,-9,-19,-11,-101,-12,126,-13,-94,-14,-4,-15,-113,-15,78,-15,55,-15,61,-15,104,-15,-80,-15,19,-14,-100,-14,73,-13,35,-12,41,-11,92,-10,-54,-9,121,-7,83,-5,110,-3,-102,-1,-6,1,109,4,-32,6,61,9,-120,11,-103,13,112,15,-20,16,13,18,-57,18,23,19,-8,18,106,18,-126,17,53,16,-102,14,-64,12,-84,10,-123,8,61,6,-21,3,-93,1,102,-1,81,-3,75,-5,111,-7,-80,-9,39,-10,-57,-12,-108,-13,-125,-14,-84,-15,-5,-16,-121,-16,66,-16,51,-16,96,-16,-56,-16,107,-15,77,-14,113,-13,-54,-12,93,-10,21,-8,-4,-7,8,-4,33,-2,75,0,97,2,119,4,119,6,78,8,-9,9,114,11,-75,12,-64,13,-125,14,15,15,84,15,103,15,52,15,-44,14,57,14,117,13,123,12,90,11,22,10,-81,8,46,7,-128,5,-57,3,-16,1,28,0,50,-2,66,-4,92,-6,121,-8,-65,-10,15,-11,-119,-13,52,-14,17,-15,50,-16,-107,-17,59,-17,54,-17,123,-17,14,-16,-19,-16,31,-14,-120,-13,65,-11,21,-9,43,-7,94,-5,-86,-3,-1,-1,75,2,-109,4,-60,6,-42,8,-90,10,88,12,-66,13,-22,14,-60,15,83,16,-107,16,-117,16,51,16,-106,15,-73,14,-102,13,72,12,-57,10,36,9,108,7,-106,5,-67,3,-45,1,-7,-1,43,-2,102,-4,-79,-6,24,-7,-104,-9,65,-10,7,-11,-18,-13,0,-13,64,-14,-79,-15,82,-15,43,-15,58,-15,-122,-15,11,-14,-51,-14,-48,-13,6,-11,120,-10,10,-8,-47,-7,-71,-5,-77,-3,-66,-1,-68,1,-69,3,-86,5,117,7,20,9,-113,10,-42,11,-27,12,-68,13,81,14,-77,14,-36,14,-54,14,-119,14,19,14,110,13,-100,12,-101,11,114,10,41,9,-82,7,17,6,78,4,111,2,124,0,114,-2,82,-4,61,-6,35,-8,54,-10,83,-12,-79,-14,58,-15,32,-16,71,-17,-42,-18,-70,-18,4,-17,-79,-17,-83,-16,7,-14,-91,-13,126,-11,-120,-9,-98,-7,-48,-5,-2,-3,27,0,31,2,-11,3,-89,5,49,7,-126,8,-95,9,-104,10,104,11,11,12,-109,12,-20,12,52,13,86,13,91,13,59,13,-4,12,-117,12,-19,11,28,11,16,10,-33,8,101,7,-65,5,-27,3,-18,1,-31,-1,-60,-3,-93,-5,-108,-7,-89,-9,-19,-11,102,-12,34,-13,40,-14,124,-15,38,-15,19,-15,80,-15,-57,-15,127,-14,89,-13,101,-12,-120,-11,-62,-10,15,-8,87,-7,-73,-6,27,-4,-119,-3,1,-1,119,0,8,2,-97,3,72,5,-27,6,-108,8,51,10,-64,11,48,13,103,14,112,15,40,16,-113,16,-103,16,66,16,-127,15,97,14,-31,12,10,11,4,9,-80,6,74,4,-50,1,89,-1,13,-3,-38,-6,-31,-8,42,-9,-73,-11,-96,-12,-66,-13,45,-13,-46,-14,-74,-14,-56,-14,-5,-14,80,-13,-73,-13,60,-12,-60,-12,106,-11,30,-10,-14,-10,-37,-9,-25,-8,21,-6,117,-5,-5,-4,-91,-2,105,0,77,2,67,4,52,6,23,8,-37,9,126,11,-40,12,-10,13,-71,14,42,15,67,15,-1,14,104,14,-114,13,105,12,24,11,-104,9,6,8,108,6,-51,4,50,3,-86,1,48,0,-44,-2,-121,-3,60,-4,16,-5,-37,-7,-63,-8,-99,-9,127,-10,108,-11,98,-12,114,-13,-99,-14,-14,-15,122,-15,74,-15,86,-15,-60,-15,-126,-14,-98,-13,18,-11,-50,-10,-42,-8,28,-5,-128,-3,3,0,111,2,-37,4,23,7,29,9,-43,10,66,12,89,13,22,14,124,14,-117,14,88,14,-32,13,57,13,101,12,121,11,117,10,99,9,77,8,42,7,21,6,-27,4,-69,3,117,2,46,1,-42,-1,104,-2,-29,-4,89,-5,-62,-7,58,-8,-74,-10,70,-11,6,-12,-17,-14,36,-14,-109,-15,91,-15,117,-15,-30,-15,-93,-14,-83,-13,1,-11,-120,-10,61,-8,-1,-7,-35,-5,-74,-3,-127,-1,62,1,-63,2,66,4,-125,5,-75,6,-83,7,-109,8,94,9,11,10,-87,10,44,11,-96,11,3,12,71,12,113,12,119,12,79,12,-12,11,90,11,-120,10,114,9,26,8,127,6,-88,4,-88,2,-119,0,77,-2,17,-4,-34,-7,-49,-9,-11,-11,83,-12,-7,-14,-11,-15,72,-15,-7,-16,-4,-16,89,-15,-12,-15,-29,-14,-16,-13,58,-11,-103,-10,14,-8,-112,-7,7,-5,-120,-4,-2,-3,109,-1,-47,0,37,2,115,3,-61,4,-5,5,52,7,87,8,119,9,118,10,97,11,31,12,-70,12,28,13,72,13,49,13,-34,12,62,12,99,11,60,10,-21,8,98,7,-72,5,-22,3,18,2,57,0,111,-2,-72,-4,25,-5,-95,-7,88,-8,63,-9,82,-10,-112,-11,0,-11}; }
	private static byte[] data6(){ return new byte[] {-108,-12,88,-12,57,-12,56,-12,97,-12,-101,-12,-4,-12,118,-11,21,-10,-42,-10,-67,-9,-63,-8,-11,-7,77,-5,-50,-4,106,-2,28,0,-28,1,-69,3,-119,5,72,7,-19,8,115,10,-63,11,-40,12,-96,13,44,14,97,14,75,14,-22,13,61,13,82,12,39,11,-53,9,74,8,-81,6,-2,4,65,3,-123,1,-50,-1,51,-2,-101,-4,37,-5,-64,-7,-124,-8,102,-9,106,-10,-113,-11,-38,-12,77,-12,-18,-13,-78,-13,-84,-13,-53,-13,33,-12,-93,-12,84,-11,60,-10,72,-9,-125,-8,-41,-7,81,-5,-26,-4,-127,-2,48,0,-56,1,104,3,-14,4,98,6,-84,7,-41,8,-39,9,-85,10,79,11,-68,11,-1,11,14,12,-16,11,-91,11,45,11,-107,10,-54,9,-23,8,-34,7,-61,6,-120,5,51,4,-47,2,91,1,-24,-1,102,-2,-29,-4,106,-5,-9,-7,-90,-8,94,-9,61,-10,61,-11,105,-12,-54,-13,90,-13,35,-13,40,-13,101,-13,-36,-13,-115,-12,120,-11,-111,-10,-33,-9,67,-7,-40,-6,-127,-4,60,-2,1,0,-71,1,116,3,29,5,-87,6,19,8,84,9,113,10,81,11,4,12,115,12,-77,12,-80,12,124,12,10,12,108,11,-101,10,-97,9,-127,8,65,7,-13,5,-117,4,22,3,-97,1,36,0,-70,-2,80,-3,-12,-5,-87,-6,120,-7,99,-8,102,-9,-122,-10,-54,-11,48,-11,-59,-12,124,-12,96,-12,117,-12,-77,-12,34,-11,-62,-11,-117,-10,-119,-9,-93,-8,-28,-7,65,-5,-66,-4,69,-2,-41,-1,97,1,-21,2,105,4,-51,5,15,7,54,8,53,9,11,10,-75,10,42,11,124,11,-103,11,-114,11,87,11,-8,10,115,10,-59,9,-10,8,4,8,-8,6,-51,5,126,4,31,3,-90,1,35,0,-106,-2,-11,-4,102,-5,-44,-7,101,-8,8,-9,-51,-11,-57,-12,-18,-13,95,-13,2,-13,-9,-14,38,-13,-89,-13,90,-12,85,-11,-128,-10,-38,-9,85,-7,-30,-6,-128,-4,37,-2,-66,-1,78,1,-72,2,22,4,81,5,106,6,93,7,47,8,-26,8,122,9,-18,9,68,10,-127,10,-101,10,-98,10,125,10,61,10,-37,9,77,9,-101,8,-63,7,-63,6,-103,5,71,4,-36,2,85,1,-56,-1,43,-2,-111,-4,5,-5,-112,-7,70,-8,25,-9,37,-10,96,-11,-40,-12,-115,-12,117,-12,-105,-12,-23,-12,106,-11,12,-10,-44,-10,-76,-9,-87,-8,-77,-7,-68,-6,-36,-5,0,-3,47,-2,100,-1,-105,0,-40,1,32,3,103,4,-88,5,-22,6,28,8,64,9,63,10,31,11,-53,11,74,12,-127,12,125,12,49,12,-102,11,-61,10,-93,9,82,8,-51,6,38,5,93,3,-110,1,-63,-1,13,-2,103,-4,-26,-6,-111,-7,108,-8,126,-9,-59,-10,49,-10,-37,-11,-92,-11,-102,-11,-80,-11,-34,-11,40,-10,-119,-10,-11,-10,-125,-9,26,-8,-45,-8,-102,-7,-128,-6,125,-5,-94,-4,-42,-3,47,-1,-118,0,0,2,127,3,-18,4,92,6,-90,7,-36,8,-36,9,-81,10,61,11,-105,11,-86,11,-128,11,25,11,120,10,-82,9,-83,8,-97,7,102,6,56,5,-15,3,-77,2,117,1,69,0,36,-1,11,-2,-4,-4,-12,-5,-1,-6,15,-6,42,-7,74,-8,122,-9,-70,-10,17,-10,-124,-11,24,-11,-40,-12,-55,-12,-20,-12,83,-11,-13,-11,-46,-10,-14,-9,60,-7,-61,-6,107,-4,47,-2,-2,-1,-52,1,-122,3,54,5,-80,6,-3,7,22,9,-13,9,-113,10,-10,10,17,11,10,11,-62,10,92,10,-50,9,39,9,108,8,-99,7,-63,6,-34,5,-12,4,-1,3,-2,2,-14,1,-35,0,-62,-1,-101,-2,96,-3,47,-4,-15,-6,-55,-7,-89,-8,-106,-9,-83,-10,-28,-11,83,-11,-17,-12,-51,-12,-33,-12,56,-11,-63,-11,-115,-10,-127,-9,-87,-8,-28,-7,61,-5,-99,-4,8,-2,106,-1,-65,0,-4,1,36,3,59,4,48,5,7,6,-51,6,118,7,13,8,-111,8,-12,8,85,9,-117,9,-64,9,-63,9,-68,9,124,9,35,9,-105,8,-33,7,1,7,-23,5,-83,4,70,3,-60,1,49,0,-117,-2,-25,-4,74,-5,-52,-7,108,-8,60,-9,58,-10,118,-11,-17,-12,-85,-12,-95,-12,-43,-12,65,-11,-36,-11,-96,-10,-120,-9,-121,-8,-97,-7,-66,-6,-28,-5,11,-3,56,-2,95,-1,126,0,-105,1,-87,2,-72,3,-65,4,-81,5,-96,6,124,7,66,8,-12,8,124,9,-16,9,47,10,73,10,48,10,-27,9,109,9,-69,8,-32,7,-40,6,-73,5,109,4,24,3,-85,1,71,0,-21,-2,-109,-3,86,-4,42,-5,38,-6,64,-7,127,-8,-38,-9,94,-9,1,-9,-57,-10,-88,-10,-88,-10,-59,-10,-4,-10,77,-9,-72,-9,66,-8,-23,-8,-85,-7,-124,-6,-127,-5,-109,-4,-57,-3,8,-1,84,0,-76,1,18,3,111,4,-73,5,-16,6}; }
	private static byte[] data7(){ return new byte[] {12,8,2,9,-54,9,94,10,-61,10,-26,10,-33,10,-115,10,27,10,101,9,-112,8,-114,7,112,6,63,5,-7,3,-88,2,86,1,4,0,-59,-2,-121,-3,95,-4,69,-5,69,-6,101,-7,-109,-8,-24,-9,80,-9,-29,-10,-110,-10,103,-10,89,-10,126,-10,-72,-10,38,-9,-82,-9,100,-8,58,-7,41,-6,55,-5,89,-4,-111,-3,-43,-2,25,0,93,1,-103,2,-49,3,-22,4,-17,5,-40,6,-92,7,76,8,-51,8,44,9,93,9,116,9,90,9,34,9,-55,8,74,8,-78,7,-10,6,42,6,64,5,74,4,55,3,30,2,-9,0,-49,-1,-92,-2,114,-3,80,-4,48,-5,45,-6,55,-7,88,-8,-98,-9,-5,-10,-116,-10,59,-10,23,-10,35,-10,85,-10,-76,-10,68,-9,-12,-9,-45,-8,-50,-7,-31,-6,21,-4,87,-3,-85,-2,-2,-1,80,1,-96,2,-31,3,18,5,36,6,28,7,-10,7,-87,8,45,9,-111,9,-66,9,-55,9,-93,9,85,9,-32,8,71,8,-119,7,-80,6,-65,5,-69,4,-86,3,-123,2,96,1,57,0,23,-1,-5,-3,-26,-4,-34,-5,-22,-6,14,-6,66,-7,-109,-8,-5,-9,-123,-9,47,-9,-6,-10,-26,-10,-6,-10,46,-9,-119,-9,7,-8,-84,-8,109,-7,84,-6,69,-5,93,-4,126,-3,-80,-2,-24,-1,23,1,72,2,114,3,-127,4,-128,5,99,6,45,7,-44,7,89,8,-73,8,-9,8,17,9,5,9,-38,8,-113,8,33,8,-104,7,-19,6,46,6,85,5,104,4,93,3,73,2,34,1,-8,-1,-63,-2,-118,-3,83,-4,46,-5,20,-6,19,-7,43,-8,105,-9,-53,-10,98,-10,30,-10,22,-10,58,-10,-106,-10,24,-9,-45,-9,-86,-8,-83,-7,-62,-6,-21,-5,33,-3,96,-2,-105,-1,-52,0,-23,1,-5,2,-6,3,-34,4,-91,5,89,6,-14,6,110,7,-39,7,27,8,84,8,102,8,106,8,69,8,20,8,-72,7,68,7,-80,6,-7,5,47,5,65,4,56,3,32,2,-18,0,-64,-1,-123,-2,76,-3,35,-4,6,-5,10,-6,41,-7,103,-8,-44,-9,101,-9,37,-9,14,-9,32,-9,90,-9,-75,-9,46,-8,-59,-8,113,-7,54,-6,-2,-6,-33,-5,-66,-4,-80,-3,-88,-2,-99,-1,-101,0,-103,1,-98,2,-98,3,-108,4,-119,5,107,6,69,7,-6,7,-101,8,14,9,99,9,-124,9,118,9,54,9,-62,8,28,8,73,7,75,6,47,5,-11,3,-88,2,78,1,-4,-1,-81,-2,116,-3,77,-4,64,-5,92,-6,-103,-7,-5,-8,125,-8,38,-8,-20,-9,-39,-9,-42,-9,-9,-9,39,-8,111,-8,-55,-8,58,-7,-72,-7,86,-6,-5,-6,-70,-5,-115,-4,119,-3,115,-2,126,-1,-111,0,-81,1,-45,2,-21,3,-5,4,-13,5,-39,6,-103,7,51,8,-93,8,-29,8,-10,8,-39,8,-109,8,28,8,-116,7,-52,6,3,6,25,5,49,4,50,3,61,2,58,1,75,0,92,-1,117,-2,-104,-3,-69,-4,-11,-5,50,-5,122,-6,-48,-7,44,-7,-93,-8,43,-8,-55,-9,-121,-9,103,-9,102,-9,-103,-9,-23,-9,116,-8,34,-7,-1,-7,-5,-6,30,-4,90,-3,-87,-2,-1,-1,81,1,-98,2,-40,3,-6,4,-13,5,-53,6,125,7,-5,7,84,8,126,8,-128,8,95,8,27,8,-69,7,70,7,-69,6,30,6,115,5,-67,4,1,4,55,3,101,2,-120,1,-93,0,-63,-1,-53,-2,-35,-3,-31,-4,-12,-5,14,-5,50,-6,107,-7,-70,-8,43,-8,-65,-9,125,-9,98,-9,118,-9,-72,-9,32,-8,-73,-8,112,-7,71,-6,58,-5,53,-4,72,-3,88,-2,107,-1,117,0,110,1,93,2,63,3,5,4,-68,4,93,5,-18,5,107,6,-46,6,41,7,104,7,-104,7,-82,7,-85,7,-107,7,88,7,3,7,-117,6,-19,5,63,5,92,4,107,3,83,2,51,1,0,0,-53,-2,-113,-3,95,-4,69,-5,63,-6,96,-7,-102,-8,11,-8,-102,-9,104,-9,84,-9,117,-9,-68,-9,39,-8,-79,-8,91,-7,22,-6,-23,-6,-61,-5,-93,-4,-115,-3,121,-2,101,-1,79,0,46,1,14,2,-20,2,-70,3,-127,4,58,5,-24,5,-127,6,8,7,110,7,-63,7,-20,7,-5,7,-30,7,-90,7,67,7,-69,6,18,6,73,5,107,4,115,3,106,2,92,1,68,0,62,-1,50,-2,59,-3,82,-4,125,-5,-50,-6,37,-6,-86,-7,55,-7,-17,-8,-73,-8,-97,-8,-99,-8,-78,-8,-29,-8,36,-7,-126,-7,-12,-7,-126,-6,30,-5,-41,-5,-102,-4,127,-3,108,-2,104,-1,106,0,116,1,-126,2,-121,3,123,4,102,5,55,6,-19,6,-126,7,-19,7,54,8,85,8,71,8,22,8,-73,7,59,7,-108,6,-38,5,0,5,32,4,35,3,39,2,33,1,29,0,40,-1,44,-2,68,-3,101,-4}; }
	private static byte[] data8(){ return new byte[] {-102,-5,-28,-6,67,-6,-79,-7,64,-7,-31,-8,-92,-8,-128,-8,120,-8,-112,-8,-60,-8,22,-7,-124,-7,19,-6,-73,-6,118,-5,68,-4,40,-3,24,-2,20,-1,15,0,9,1,2,2,-20,2,-47,3,-107,4,80,5,-15,5,116,6,-34,6,39,7,84,7,100,7,84,7,42,7,-30,6,-126,6,6,6,117,5,-50,4,27,4,80,3,124,2,-103,1,-78,0,-55,-1,-35,-2,-16,-3,11,-3,50,-4,101,-5,-85,-6,3,-6,114,-7,0,-7,-89,-8,112,-8,89,-8,99,-8,-111,-8,-37,-8,74,-7,-41,-7,-128,-6,67,-5,22,-4,0,-3,-6,-3,-8,-2,3,0,-3,0,3,2,-11,2,-30,3,-78,4,115,5,25,6,-91,6,15,7,92,7,-124,7,-112,7,116,7,65,7,-27,6,120,6,-28,5,67,5,-121,4,-62,3,-19,2,7,2,41,1,55,0,93,-1,119,-2,-100,-3,-51,-4,8,-4,92,-5,-72,-6,47,-6,-75,-7,92,-7,21,-7,-15,-8,-35,-8,-11,-8,27,-7,104,-7,-52,-7,75,-6,-24,-6,-103,-5,89,-4,49,-3,18,-2,-1,-2,-13,-1,-38,0,-53,1,-82,2,-125,3,74,4,-8,4,-103,5,26,6,-124,6,-51,6,3,7,16,7,18,7,-28,6,-79,6,84,6,-25,5,97,5,-61,4,29,4,89,3,-113,2,-83,1,-50,0,-33,-1,-8,-2,-1,-3,29,-3,51,-4,104,-5,-93,-6,-10,-7,102,-7,-14,-8,-96,-8,118,-8,104,-8,-120,-8,-56,-8,44,-7,-78,-7,86,-6,18,-5,-27,-5,-63,-4,-83,-3,-97,-2,-114,-1,125,0,90,1,54,2,-4,2,-70,3,87,4,-17,4,107,5,-42,5,41,6,105,6,-112,6,-89,6,-97,6,-119,6,87,6,13,6,-83,5,50,5,-97,4,-2,3,64,3,114,2,-107,1,-86,0,-62,-1,-48,-2,-31,-3,-1,-4,36,-4,102,-5,-73,-6,35,-6,-80,-7,89,-7,34,-7,16,-7,21,-7,64,-7,-124,-7,-37,-7,81,-6,-43,-6,108,-5,18,-4,-69,-4,119,-3,51,-2,-1,-2,-63,-1,-110,0,85,1,42,2,-20,2,-81,3,102,4,20,5,-79,5,58,6,-88,6,-2,6,51,7,71,7,54,7,2,7,-91,6,43,6,-119,5,-54,4,-6,3,12,3,23,2,21,1,19,0,30,-1,40,-2,75,-3,117,-4,-59,-5,36,-5,-93,-6,57,-6,-23,-7,-75,-7,-104,-7,-107,-7,-96,-7,-54,-7,-6,-7,69,-6,-97,-6,8,-5,-120,-5,18,-4,-84,-4,91,-3,20,-2,-34,-2,-78,-1,-125,0,106,1,61,2,32,3,-32,3,-88,4,73,5,-29,5,79,6,-87,6,-42,6,-20,6,-46,6,-92,6,76,6,-31,5,85,5,-70,4,12,4,85,3,-105,2,-51,1,10,1,66,0,-119,-1,-57,-2,22,-2,100,-3,-64,-4,38,-4,-107,-5,11,-5,-105,-6,40,-6,-41,-7,-110,-7,105,-7,88,-7,103,-7,-114,-7,-36,-7,71,-6,-45,-6,125,-5,61,-4,23,-3,9,-2,-4,-2,3,0,-7,0,-12,1,-30,2,-71,3,120,4,34,5,-88,5,22,6,94,6,-122,6,-107,6,-127,6,90,6,21,6,-62,5,89,5,-29,4,92,4,-51,3,53,3,-108,2,-27,1,53,1,122,0,-61,-1,2,-1,65,-2,126,-3,-57,-4,18,-4,113,-5,-42,-6,86,-6,-22,-7,-99,-7,106,-7,94,-7,104,-7,-95,-7,-20,-7,95,-6,-25,-6,-113,-5,63,-4,5,-3,-47,-3,-96,-2,125,-1,67,0,15,1,-55,1,125,2,36,3,-77,3,59,4,-79,4,22,5,108,5,-82,5,-33,5,2,6,11,6,6,6,-25,5,-76,5,102,5,1,5,-125,4,-17,3,69,3,-126,2,-80,1,-46,0,-22,-1,2,-1,20,-2,53,-3,92,-4,-96,-5,-15,-6,96,-6,-15,-7,-100,-7,108,-7,97,-7,105,-7,-92,-7,-26,-7,81,-6,-56,-6,87,-5,-13,-5,-99,-4,71,-3,2,-2,-73,-2,119,-1,47,0,-28,0,-103,1,70,2,-14,2,-119,3,33,4,-90,4,28,5,-122,5,-51,5,18,6,39,6,55,6,27,6,-20,5,-97,5,50,5,-77,4,22,4,109,3,-80,2,-28,1,23,1,62,0,118,-1,-91,-2,-27,-3,45,-3,-120,-4,-9,-5,117,-5,11,-5,-80,-6,115,-6,67,-6,48,-6,45,-6,59,-6,103,-6,-102,-6,-22,-6,72,-5,-70,-5,60,-4,-48,-4,110,-3,36,-2,-36,-2,-91,-1,105,0,58,1,2,2,-51,2,-124,3,51,4,-46,4,87,5,-59,5,26,6,74,6,101,6,90,6,51,6,-17,5,-109,5,20,5,-119,4,-26,3,55,3,-128,2,-74,1,-14,0,38,0,103,-1,-91,-2,-20,-3,62,-3,-100,-4,12,-4,-117,-5,24,-5,-68,-6,114,-6,65,-6,35,-6,32,-6,46,-6,92,-6,-103,-6,-13,-6,96,-5,-31,-5,119,-4,22,-3,-55,-3,-126,-2,70,-1,9,0,-52,0}; }
	private static byte[] data9(){ return new byte[] {-118,1,69,2,-13,2,-113,3,35,4,-100,4,10,5,88,5,-103,5,-72,5,-54,5,-68,5,-100,5,102,5,25,5,-73,4,71,4,-65,3,53,3,-111,2,-20,1,56,1,-127,0,-53,-1,17,-1,88,-2,-88,-3,-6,-4,100,-4,-50,-5,82,-5,-30,-6,-118,-6,77,-6,32,-6,22,-6,26,-6,68,-6,125,-6,-44,-6,68,-5,-60,-5,92,-4,0,-3,-80,-3,116,-2,54,-1,-1,-1,-57,0,-122,1,74,2,-8,2,-99,3,47,4,-76,4,28,5,116,5,-83,5,-48,5,-36,5,-56,5,-92,5,94,5,14,5,-102,4,35,4,-113,3,-5,2,79,2,-89,1,-23,0,64,0,-127,-1,-39,-2,38,-2,-125,-3,-22,-4,93,-4,-31,-5,111,-5,20,-5,-53,-6,-108,-6,122,-6,108,-6,124,-6,-95,-6,-40,-6,44,-5,-112,-5,10,-4,-107,-4,44,-3,-46,-3,-124,-2,59,-1,-9,-1,-82,0,102,1,23,2,-66,2,87,3,-33,3,96,4,-64,4,25,5,77,5,123,5,-123,5,-123,5,99,5,56,5,-18,4,-101,4,42,4,-76,3,41,3,-108,2,-18,1,69,1,-114,0,-35,-1,34,-1,103,-2,-72,-3,6,-3,109,-4,-42,-5,86,-5,-24,-6,-110,-6,86,-6,51,-6,46,-6,65,-6,117,-6,-69,-6,35,-5,-102,-5,43,-4,-56,-4,110,-3,35,-2,-39,-2,-107,-1,76,0,-6,0,-91,1,70,2,-39,2,92,3,-42,3,57,4,-107,4,-41,4,10,5,46,5,59,5,58,5,33,5,-4,4,-67,4,110,4,11,4,-105,3,19,3,-128,2,-34,1,47,1,126,0,-58,-1,13,-1,90,-2,-93,-3,7,-3,107,-4,-21,-5,119,-5,26,-5,-39,-6,-83,-6,-104,-6,-96,-6,-73,-6,-17,-6,46,-5,-118,-5,-18,-5,103,-4,-26,-4,113,-3,1,-2,-98,-2,59,-1,-37,-1,124,0,29,1,-64,1,90,2,-16,2,124,3,1,4,117,4,-37,4,44,5,103,5,-115,5,-107,5,-121,5,93,5,18,5,-72,4,55,4,-80,3,9,3,97,2,-96,1,-28,0,29,0,100,-1,-88,-2,-2,-3,88,-3,-54,-4,77,-4,-32,-5,-116,-5,68,-5,25,-5,-7,-6,-13,-6,-5,-6,19,-5,63,-5,116,-5,-64,-5,20,-4,124,-4,-21,-4,107,-3,-13,-3,-116,-2,41,-1,-49,-1,120,0,32,1,-48,1,112,2,15,3,-100,3,30,4,-115,4,-31,4,37,5,73,5,88,5,75,5,35,5,-25,4,-106,4,44,4,-71,3,49,3,-91,2,19,2,114,1,-37,0,58,0,-91,-1,13,-1,121,-2,-18,-3,104,-3,-18,-4,123,-4,18,-4,-77,-5,104,-5,36,-5,-5,-6,-34,-6,-41,-6,-23,-6,13,-5,77,-5,-92,-5,19,-4,-109,-4,43,-3,-51,-3,-123,-2,62,-1,0,0,-67,0,121,1,41,2,-45,2,97,3,-27,3,82,4,-91,4,-26,4,8,5,25,5,18,5,-9,4,-56,4,-116,4,59,4,-30,3,121,3,6,3,-111,2,9,2,-125,1,-15,0,94,0,-55,-1,48,-1,-105,-2,1,-2,111,-3,-23,-4,104,-4,-10,-5,-107,-5,67,-5,13,-5,-25,-6,-35,-6,-22,-6,18,-5,76,-5,-92,-5,12,-4,-122,-4,22,-3,-95,-3,69,-2,-28,-2,-119,-1,45,0,-58,0,92,1,-19,1,113,2,-26,2,84,3,-77,3,4,4,76,4,124,4,-90,4,-70,4,-61,4,-75,4,-97,4,106,4,48,4,-43,3,115,3,-3,2,116,2,-30,1,56,1,-107,0,-32,-1,50,-1,127,-2,-43,-3,52,-3,-92,-4,33,-4,-76,-5,91,-5,28,-5,-11,-6,-27,-6,-16,-6,15,-5,71,-5,-114,-5,-21,-5,84,-4,-53,-4,78,-3,-46,-3,99,-2,-13,-2,-118,-1,27,0,-80,0,58,1,-53,1,77,2,-54,2,62,3,-88,3,3,4,84,4,-117,4,-69,4,-49,4,-46,4,-62,4,-108,4,94,4,7,4,-94,3,45,3,-89,2,25,2,125,1,-37,0,56,0,-100,-1,-7,-2,101,-2,-45,-3,82,-3,-35,-4,121,-4,30,-4,-38,-5,-94,-5,-128,-5,108,-5,107,-5,117,-5,-103,-5,-61,-5,4,-4,81,-4,-84,-4,24,-3,-118,-3,13,-2,-102,-2,43,-1,-54,-1,96,0,1,1,-98,1,51,2,-61,2,70,3,-69,3,37,4,113,4,-73,4,-43,4,-18,4,-29,4,-57,4,-108,4,78,4,-18,3,-120,3,7,3,-121,2,-11,1,96,1,-61,0,43,0,-113,-1,-1,-2,102,-2,-28,-3,96,-3,-16,-4,-121,-4,48,-4,-30,-5,-83,-5,-127,-5,108,-5,104,-5,117,-5,-104,-5,-55,-5,13,-4,102,-4,-57,-4,65,-3,-72,-3,71,-2,-44,-2,110,-1,6,0,-100,0,50,1,-63,1,75,2,-60,2,55,3,-104,3,-19,3,44,4,95,4,120,4,-120,4,124,4,101,4,58,4,-3,3,-78,3,88,3,-18,2,-128,2,-1,1,125,1,-18,0}; }
	private static byte[] data10(){ return new byte[] {97,0,-49,-1,63,-1,-83,-2,38,-2,-99,-3,42,-3,-74,-4,85,-4,4,-4,-68,-5,-110,-5,111,-5,104,-5,112,-5,-113,-5,-69,-5,5,-4,83,-4,-64,-4,49,-3,-83,-3,61,-2,-54,-2,104,-1,-2,-1,-103,0,45,1,-61,1,75,2,-56,2,59,3,-96,3,-11,3,55,4,101,4,-127,4,-118,4,-126,4,96,4,51,4,-19,3,-98,3,60,3,-50,2,87,2,-41,1,76,1,-60,0,49,0,-89,-1,28,-1,-111,-2,18,-2,-106,-3,42,-3,-59,-4,110,-4,38,-4,-22,-5,-60,-5,-85,-5,-92,-5,-80,-5,-49,-5,-7,-5,61,-4,-118,-4,-20,-4,87,-3,-50,-3,80,-2,-40,-2,107,-1,-9,-1,-115,0,20,1,-93,1,36,2,-103,2,9,3,101,3,-72,3,-7,3,37,4,72,4,79,4,81,4,53,4,18,4,-37,3,-109,3,64,3,-35,2,117,2,-8,1,126,1,-14,0,103,0,-35,-1,72,-1,-66,-2,49,-2,-81,-3,51,-3,-57,-4,96,-4,17,-4,-50,-5,-94,-5,-120,-5,-126,-5,-109,-5,-72,-5,-18,-5,61,-4,-107,-4,4,-3,121,-3,-6,-3,-125,-2,16,-1,-96,-1,46,0,-75,0,64,1,-71,1,51,2,-101,2,-8,2,82,3,-109,3,-52,3,-7,3,15,4,33,4,25,4,10,4,-27,3,-70,3,114,3,41,3,-57,2,99,2,-18,1,108,1,-23,0,88,0,-47,-1,64,-1,-77,-2,43,-2,-82,-3,57,-3,-41,-4,122,-4,53,-4,-1,-5,-37,-5,-51,-5,-52,-5,-27,-5,4,-4,61,-4,125,-4,-48,-4,43,-3,-112,-3,-2,-3,113,-2,-20,-2,106,-1,-22,-1,104,0,-23,0,103,1,-31,1,85,2,-63,2,38,3,126,3,-54,3,4,4,49,4,73,4,78,4,66,4,27,4,-23,3,-102,3,64,3,-45,2,90,2,-41,1,71,1,-74,0,33,0,-110,-1,5,-1,122,-2,3,-2,-119,-3,46,-3,-47,-4,-115,-4,82,-4,44,-4,17,-4,9,-4,10,-4,32,-4,61,-4,107,-4,-91,-4,-23,-4,61,-3,-104,-3,-6,-3,110,-2,-34,-2,100,-1,-32,-1,102,0,-22,0,109,1,-18,1,99,2,-46,2,49,3,-118,3,-57,3,-3,3,23,4,35,4,28,4,-3,3,-45,3,-111,3,70,3,-22,2,-123,2,25,2,-93,1,44,1,-82,0,51,0,-70,-1,66,-1,-53,-2,93,-2,-17,-3,-109,-3,52,-3,-29,-4,-100,-4,95,-4,52,-4,15,-4,3,-4,-5,-5,19,-4,45,-4,103,-4,-90,-4,3,-3,98,-3,-37,-3,82,-2,-29,-2,107,-1,1,0,-113,0,29,1,-90,1,35,2,-107,2,-8,2,81,3,-113,3,-56,3,-28,3,-10,3,-12,3,-31,3,-64,3,-106,3,86,3,21,3,-66,2,104,2,6,2,-96,1,47,1,-63,0,67,0,-45,-1,88,-1,-34,-2,109,-2,-11,-3,-110,-3,46,-3,-42,-4,-113,-4,78,-4,41,-4,10,-4,6,-4,14,-4,47,-4,91,-4,-99,-4,-18,-4,74,-3,-73,-3,36,-2,-96,-2,27,-1,-99,-1,26,0,-107,0,10,1,127,1,-29,1,73,2,-102,2,-21,2,44,3,96,3,-115,3,-88,3,-71,3,-66,3,-81,3,-102,3,114,3,58,3,-7,2,-94,2,74,2,-36,1,104,1,-22,0,101,0,-28,-1,87,-1,-44,-2,80,-2,-40,-3,105,-3,8,-3,-79,-4,113,-4,58,-4,32,-4,14,-4,23,-4,43,-4,83,-4,-119,-4,-52,-4,31,-3,120,-3,-36,-3,69,-2,-78,-2,41,-1,-100,-1,17,0,-124,0,-9,0,100,1,-47,1,47,2,-116,2,-33,2,38,3,99,3,-113,3,-79,3,-64,3,-64,3,-79,3,-114,3,95,3,27,3,-50,2,113,2,13,2,-94,1,42,1,-77,0,56,0,-60,-1,79,-1,-42,-2,102,-2,-2,-3,-103,-3,75,-3,-11,-4,-64,-4,-119,-4,104,-4,89,-4,79,-4,97,-4,120,-4,-92,-4,-37,-4,32,-3,115,-3,-51,-3,51,-2,-99,-2,19,-1,-123,-1,4,0,113,0,-16,0,89,1,-49,1,41,2,-117,2,-43,2,32,3,81,3,-128,3,-108,3,-92,3,-99,3,-118,3,107,3,54,3,-3,2,-82,2,89,2,-2,1,-111,1,39,1,-78,0,58,0,-55,-1,80,-1,-33,-2,112,-2,8,-2,-84,-3,88,-3,12,-3,-47,-4,-97,-4,-128,-4,109,-4,105,-4,118,-4,-114,-4,-70,-4,-19,-4,51,-3,-126,-3,-36,-3,62,-2,-91,-2,25,-1,-120,-1,3,0,113,0,-26,0,86,1,-66,1,31,2,122,2,-61,2,14,3,60,3,105,3,127,3,-115,3,-123,3,120,3,81,3,38,3,-25,2,-97,2,75,2,-16,1,-119,1,30,1,-82,0,58,0,-55,-1,85,-1,-27,-2,122,-2,22,-2,-71,-3,105,-3,30,-3,-27,-4,-76,-4,-106,-4,-125,-4,-128,-4,-117,-4,-91,-4,-52,-4,2,-3,68,-3,-111,-3,-21,-3,70,-2}; }
	private static byte[] data11(){ return new byte[] {-80,-2,29,-1,-116,-1,2,0,110,0,-30,0,76,1,-77,1,20,2,102,2,-72,2,-10,2,41,3,86,3,101,3,123,3,109,3,98,3,61,3,18,3,-43,2,-113,2,61,2,-31,1,-124,1,20,1,-84,0,54,0,-52,-1,88,-1,-18,-2,-126,-2,34,-2,-57,-3,122,-3,47,-3,-7,-4,-55,-4,-86,-4,-102,-4,-107,-4,-95,-4,-70,-4,-32,-4,21,-3,85,-3,-96,-3,-8,-3,80,-2,-69,-2,31,-1,-109,-1,-2,-1,110,0,-38,0,69,1,-85,1,3,2,90,2,-91,2,-29,2,25,3,60,3,85,3,97,3,91,3,75,3,42,3,-2,2,-60,2,126,2,48,2,-42,1,121,1,14,1,-90,0,56,0,-54,-1,96,-1,-15,-2,-116,-2,47,-2,-44,-3,-118,-3,65,-3,10,-3,-33,-4,-66,-4,-80,-4,-87,-4,-74,-4,-49,-4,-13,-4,40,-3,101,-3,-81,-3,4,-2,92,-2,-63,-2,38,-1,-108,-1,0,0,106,0,-42,0,61,1,-98,1,-6,1,72,2,-104,2,-50,2,7,3,39,3,65,3,75,3,70,3,56,3,19,3,-16,2,-81,2,113,2,32,2,-51,1,109,1,12,1,-98,0,56,0,-53,-1,100,-1,-9,-2,-104,-2,53,-2,-25,-3,-107,-3,85,-3,28,-3,-15,-4,-44,-4,-61,-4,-64,-4,-54,-4,-31,-4,8,-3,56,-3,118,-3,-65,-3,13,-2,105,-2,-57,-2,45,-1,-106,-1,-1,-1,105,0,-49,0,55,1,-108,1,-20,1,61,2,-125,2,-62,2,-16,2,22,3,43,3,55,3,51,3,32,3,6,3,-41,2,-94,2,97,2,18,2,-61,1,100,1,3,1,-98,0,51,0,-48,-1,99,-1,3,-1,-100,-2,69,-2,-17,-3,-89,-3,101,-3,45,-3,7,-3,-28,-4,-37,-4,-48,-4,-31,-4,-12,-4,26,-3,75,-3,-124,-3,-51,-3,27,-2,114,-2,-50,-2,52,-1,-107,-1,3,0,99,0,-51,0,44,1,-115,1,-34,1,49,2,115,2,-81,2,-32,2,1,3,25,3,35,3,29,3,15,3,-15,2,-58,2,-108,2,78,2,10,2,-78,1,96,1,-5,0,-103,0,54,0,-53,-1,109,-1,5,-1,-90,-2,80,-2,-4,-3,-74,-3,116,-3,65,-3,22,-3,-4,-4,-23,-4,-22,-4,-17,-4,11,-3,43,-3,89,-3,-103,-3,-43,-3,44,-2,119,-2,-38,-2,52,-1,-99,-1,-2,-1,101,0,-60,0,41,1,127,1,-42,1,32,2,101,2,-96,2,-52,2,-17,2,6,3,13,3,14,3,-8,2,-31,2,-76,2,-124,2,63,2,-2,1,-88,1,87,1,-12,0,-105,0,50,0,-48,-1,109,-1,13,-1,-83,-2,92,-2,8,-2,-60,-3,-124,-3,82,-3,40,-3,15,-3,-3,-4,-5,-4,6,-3,26,-3,61,-3,108,-3,-93,-3,-23,-3,49,-2,-121,-2,-37,-2,62,-1,-101,-1,2,0,95,0,-61,0,30,1,120,1,-54,1,18,2,89,2,-117,2,-66,2,-36,2,-14,2,-4,2,-8,2,-23,2,-52,2,-90,2,112,2,54,2,-18,1,-96,1,76,1,-15,0,-110,0,49,0,-47,-1,113,-1,18,-1,-72,-2,99,-2,22,-2,-46,-3,-109,-3,98,-3,60,-3,30,-3,20,-3,10,-3,27,-3,41,-3,83,-3,119,-3,-73,-3,-15,-3,65,-2,-117,-2,-25,-2,62,-1,-93,-1,-3,-1,96,0,-69,0,26,1,109,1,-63,1,2,2,76,2,123,2,-82,2,-56,2,-31,2,-23,2,-27,2,-40,2,-71,2,-106,2,97,2,41,2,-33,1,-103,1,66,1,-20,0,-114,0,48,0,-47,-1,118,-1,22,-1,-62,-2,107,-2,36,-2,-35,-3,-91,-3,113,-3,77,-3,49,-3,36,-3,32,-3,41,-3,63,-3,95,-3,-117,-3,-62,-3,0,-2,73,-2,-105,-2,-21,-2,71,-1,-96,-1,2,0,89,0,-69,0,15,1,103,1,-77,1,-6,1,58,2,110,2,-102,2,-70,2,-51,2,-39,2,-47,2,-57,2,-88,2,-121,2,81,2,27,2,-43,1,-115,1,61,1,-29,0,-114,0,42,0,-39,-1,115,-1,33,-1,-59,-2,121,-2,44,-2,-18,-3,-80,-3,-124,-3,92,-3,67,-3,54,-3,50,-3,58,-3,83,-3,107,-3,-97,-3,-52,-3,15,-2,83,-2,-96,-2,-13,-2,73,-1,-92,-1,0,0,90,0,-76,0,10,1,94,1,-89,1,-17,1,43,2,96,2,-118,2,-88,2,-67,2,-60,2,-60,2,-79,2,-99,2,113,2,72,2,10,2,-51,1,-127,1,54,1,-35,0,-118,0,44,0,-42,-1,121,-1,37,-1,-51,-2,-125,-2,55,-2,-6,-3,-64,-3,-110,-3,110,-3,84,-3,70,-3,69,-3,74,-3,99,-3,126,-3,-85,-3,-36,-3,26,-2,93,-2,-87,-2,-7,-2,77,-1,-87,-1,-2,-1,89,0,-83,0,6,1,84,1,-98,1,-29,1,28,2,82,2,122,2,-106,2,-81,2,-80,2,-76,2,-95,2,-119,2,103,2,53,2,0,2}; }
	private static byte[] data12(){ return new byte[] {-63,1,120,1,46,1,-39,0,-124,0,44,0,-40,-1,123,-1,44,-1,-45,-2,-117,-2,69,-2,5,-2,-50,-3,-95,-3,126,-3,101,-3,86,-3,87,-3,90,-3,117,-3,-115,-3,-72,-3,-21,-3,36,-2,107,-2,-83,-2,2,-1,82,-1,-88,-1,2,0,82,0,-83,0,-2,0,76,1,-108,1,-42,1,17,2,67,2,106,2,-121,2,-101,2,-92,2,-96,2,-110,2,121,2,87,2,40,2,-11,1,-78,1,115,1,35,1,-42,0,-127,0,42,0,-39,-1,126,-1,49,-1,-36,-2,-109,-2,81,-2,15,-2,-34,-3,-81,-3,-115,-3,118,-3,103,-3,102,-3,109,-3,-126,-3,-99,-3,-56,-3,-10,-3,49,-2,116,-2,-74,-2,8,-1,85,-1,-84,-1,0,0,82,0,-87,0,-11,0,71,1,-120,1,-52,1,3,2,54,2,90,2,121,2,-119,2,-107,2,-114,2,-125,2,105,2,73,2,28,2,-26,1,-86,1,103,1,31,1,-48,0,124,0,44,0,-41,-1,-123,-1,50,-1,-27,-2,-101,-2,91,-2,30,-2,-24,-3,-64,-3,-102,-3,-121,-3,118,-3,121,-3,121,-3,-106,-3,-87,-3,-42,-3,3,-2,61,-2,123,-2,-61,-2,8,-1,95,-1,-86,-1,1,0,81,0,-94,0,-13,0,60,1,-127,1,-67,1,-5,1,35,2,80,2,102,2,125,2,-128,2,-125,2,112,2,92,2,59,2,11,2,-33,1,-99,1,96,1,24,1,-56,0,125,0,40,0,-39,-1,-121,-1,56,-1,-20,-2,-92,-2,101,-2,40,-2,-8,-3,-53,-3,-84,-3,-107,-3,-122,-3,-119,-3,-118,-3,-94,-3,-69,-3,-32,-3,19,-2,69,-2,-121,-2,-56,-2,17,-1,96,-1,-83,-1,3,0,76,0,-94,0,-23,0,54,1,119,1,-75,1,-22,1,27,2,60,2,91,2,107,2,115,2,112,2,99,2,77,2,43,2,2,2,-48,1,-109,1,90,1,13,1,-55,0,116,0,43,0,-40,-1,-116,-1,59,-1,-11,-2,-87,-2,115,-2,48,-2,7,-2,-41,-3,-68,-3,-94,-3,-103,-3,-109,-3,-98,-3,-83,-3,-52,-3,-20,-3,31,-2,80,-2,-112,-2,-48,-2,22,-1,100,-1,-79,-1,-1,-1,79,0,-103,0,-25,0,45,1,109,1,-84,1,-36,1,16,2,44,2,79,2,89,2,101,2,97,2,84,2,62,2,32,2,-14,1,-57,1,-119,1,80,1,9,1,-63,0,116,0,40,0,-38,-1,-113,-1,63,-1,-5,-2,-76,-2,121,-2,64,-2,15,-2,-24,-3,-57,-3,-75,-3,-93,-3,-89,-3,-87,-3,-65,-3,-41,-3,-5,-3,41,-2,92,-2,-104,-2,-41,-2,30,-1,101,-1,-75,-1,-3,-1,78,0,-107,0,-29,0,35,1,103,1,-97,1,-45,1,0,2,34,2,61,2,78,2,84,2,82,2,70,2,48,2,18,2,-25,1,-69,1,-127,1,69,1,6,1,-71,0,115,0,39,0,-38,-1,-110,-1,68,-1,1,-1,-68,-2,-126,-2,76,-2,26,-2,-10,-3,-43,-3,-63,-3,-75,-3,-77,-3,-71,-3,-52,-3,-27,-3,8,-2,51,-2,104,-2,-98,-2,-30,-2,31,-1,110,-1,-78,-1,2,0,72,0,-108,0,-37,0,32,1,90,1,-103,1,-60,1,-10,1,20,2,47,2,62,2,73,2,65,2,57,2,34,2,3,2,-32,1,-84,1,122,1,61,1,-3,0,-72,0,111,0,37,0,-35,-1,-109,-1,73,-1,8,-1,-62,-2,-114,-2,83,-2,41,-2,1,-2,-30,-3,-47,-3,-63,-3,-62,-3,-55,-3,-41,-3,-12,-3,19,-2,64,-2,112,-2,-86,-2,-28,-2,41,-1,109,-1,-71,-1,-2,-1,73,0,-113,0,-42,0,23,1,85,1,-117,1,-67,1,-24,1,5,2,37,2,45,2,60,2,51,2,43,2,21,2,-9,1,-46,1,-92,1,111,1,55,1,-10,0,-77,0,109,0,36,0,-34,-1,-108,-1,80,-1,12,-1,-52,-2,-107,-2,94,-2,53,-2,12,-2,-13,-3,-38,-3,-46,-3,-49,-3,-42,-3,-25,-3,-2,-3,33,-2,73,-2,123,-2,-79,-2,-19,-2,45,-1,114,-1,-72,-1,-1,-1,72,0,-117,0,-47,0,18,1,73,1,-124,1,-79,1,-36,1,-6,1,22,2,33,2,44,2,39,2,29,2,7,2,-20,1,-58,1,-103,1,105,1,42,1,-11,0,-85,0,109,0,34,0,-34,-1,-103,-1,82,-1,19,-1,-44,-2,-101,-2,110,-2,58,-2,29,-2,-4,-3,-23,-3,-31,-3,-37,-3,-28,-3,-13,-3,13,-2,41,-2,89,-2,-128,-2,-68,-2,-14,-2,50,-1,119,-1,-72,-1,2,0,66,0,-117,0,-53,0,9,1,69,1,119,1,-87,1,-49,1,-18,1,9,2,20,2,30,2,26,2,15,2,-4,1,-34,1,-67,1,-115,1,97,1,36,1,-19,0,-87,0,105,0,33,0,-32,-1,-101,-1,85,-1,27,-1,-40,-2,-87,-2,114,-2,73,-2,39,-2,7,-2,-6,-3,-22,-3,-21,-3,-15,-3,-2,-3,26,-2}; }
	private static byte[] data13(){ return new byte[] {54,-2,97,-2,-116,-2,-64,-2,-4,-2,54,-1,122,-1,-69,-1,0,0,66,0,-121,0,-59,0,5,1,60,1,110,1,-97,1,-62,1,-27,1,-7,1,10,2,15,2,15,2,-1,1,-13,1,-49,1,-75,1,-126,1,88,1,30,1,-25,0,-92,0,103,0,32,0,-31,-1,-100,-1,93,-1,28,-1,-29,-2,-82,-2,125,-2,86,-2,47,-2,23,-2,3,-2,-7,-3,-8,-3,-4,-3,15,-2,33,-2,69,-2,103,-2,-104,-2,-56,-2,1,-1,60,-1,123,-1,-64,-1,-3,-1,67,0,-126,0,-64,0,0,1,50,1,103,1,-109,1,-70,1,-43,1,-15,1,-7,1,5,2,0,2,-10,1,-30,1,-54,1,-93,1,127,1,76,1,25,1,-32,0,-94,0,98,0,34,0,-33,-1,-95,-1,94,-1,37,-1,-25,-2,-71,-2,-124,-2,97,-2,58,-2,35,-2,16,-2,6,-2,2,-2,12,-2,23,-2,49,-2,77,-2,114,-2,-96,-2,-48,-2,7,-1,65,-1,-128,-1,-67,-1,3,0,59,0,-125,0,-69,0,-7,0,43,1,94,1,-119,1,-81,1,-52,1,-31,1,-15,1,-10,1,-12,1,-23,1,-41,1,-66,1,-101,1,116,1,67,1,20,1,-39,0,-98,0,97,0,31,0,-29,-1,-96,-1,101,-1,39,-1,-15,-2,-67,-2,-110,-2,103,-2,72,-2,45,-2,28,-2,19,-2,15,-2,23,-2,36,-2,59,-2,88,-2,125,-2,-90,-2,-37,-2,9,-1,73,-1,-128,-1,-63,-1,1,0,60,0,127,0,-75,0,-12,0,34,1,89,1,125,1,-91,1,-64,1,-41,1,-29,1,-20,1,-27,1,-32,1,-54,1,-76,1,-112,1,108,1,59,1,12,1,-43,0,-102,0,95,0,29,0,-28,-1,-94,-1,106,-1,42,-1,-6,-2,-61,-2,-99,-2,110,-2,86,-2,53,-2,43,-2,29,-2,28,-2,34,-2,49,-2,68,-2,101,-2,-125,-2,-77,-2,-35,-2,19,-1,75,-1,-124,-1,-60,-1,-2,-1,61,0,122,0,-79,0,-17,0,27,1,78,1,119,1,-104,1,-72,1,-55,1,-39,1,-34,1,-36,1,-46,1,-63,1,-90,1,-117,1,94,1,56,1,2,1,-46,0,-107,0,93,0,29,0,-27,-1,-93,-1,111,-1,47,-1,1,-1,-54,-2,-91,-2,122,-2,94,-2,68,-2,50,-2,43,-2,39,-2,47,-2,59,-2,81,-2,107,-2,-111,-2,-74,-2,-22,-2,20,-1,82,-1,-121,-1,-61,-1,2,0,57,0,119,0,-80,0,-28,0,26,1,65,1,114,1,-117,1,-82,1,-65,1,-53,1,-42,1,-52,1,-53,1,-79,1,-94,1,122,1,92,1,44,1,-1,0,-53,0,-110,0,90,0,29,0,-28,-1,-88,-1,111,-1,56,-1,3,-1,-43,-2,-86,-2,-121,-2,101,-2,82,-2,59,-2,56,-2,49,-2,59,-2,69,-2,93,-2,116,-2,-102,-2,-65,-2,-19,-2,31,-1,81,-1,-115,-1,-60,-1,1,0,57,0,115,0,-85,0,-31,0,14,1,64,1,98,1,-121,1,-95,1,-77,1,-61,1,-57,1,-59,1,-69,1,-84,1,-110,1,118,1,80,1,38,1,-6,0,-60,0,-112,0,86,0,30,0,-28,-1,-84,-1,111,-1,64,-1,6,-1,-31,-2,-82,-2,-109,-2,109,-2,93,-2,71,-2,65,-2,62,-2,70,-2,80,-2,102,-2,127,-2,-95,-2,-56,-2,-12,-2,35,-1,89,-1,-117,-1,-55,-1,-2,-1,57,0,113,0,-90,0,-37,0,9,1,54,1,92,1,123,1,-104,1,-87,1,-73,1,-67,1,-73,1,-76,1,-98,1,-117,1,108,1,71,1,32,1,-14,0,-63,0,-116,0,84,0,30,0,-29,-1,-80,-1,113,-1,69,-1,13,-1,-26,-2,-70,-2,-105,-2,123,-2,99,-2,85,-2,75,-2,73,-2,80,-2,91,-2,111,-2,-118,-2,-88,-2,-46,-2,-8,-2,43,-1,89,-1,-109,-1,-58,-1,1,0,55,0,108,0,-91,0,-44,0,2,1,49,1,79,1,119,1,-119,1,-93,1,-87,1,-76,1,-84,1,-87,1,-107,1,-128,1,100,1,62,1,27,1,-22,0,-66,0,-121,0,84,0,27,0,-26,-1,-82,-1,122,-1,70,-1,21,-1,-22,-2,-60,-2,-97,-2,-122,-2,108,-2,95,-2,87,-2,83,-2,90,-2,102,-2,121,-2,-110,-2,-77,-2,-43,-2,3,-1,45,-1,94,-1,-106,-1,-57,-1,2,0,52,0,107,0,-97,0,-47,0,-4,0,38,1,76,1,104,1,-122,1,-109,1,-93,1,-90,1,-91,1,-100,1,-115,1,118,1,90,1,58,1,15,1,-22,0,-76,0,-121,0,80,0,27,0,-24,-1,-83,-1,-128,-1,71,-1,30,-1,-15,-2,-56,-2,-84,-2,-117,-2,121,-2,105,-2,95,-2,95,-2,101,-2,111,-2,-124,-2,-103,-2,-68,-2,-36,-2,10,-1,48,-1,102,-1,-108,-1,-53,-1,1,0,50,0,107,0,-104,0,-50,0,-12,0,33,1,66,1,97,1,123,1,-119,1,-101,1,-104,1,-97,1}; }
	private static byte[] data14(){ return new byte[] {-115,1,-121,1,107,1,83,1,48,1,11,1,-32,0,-75,0,-128,0,81,0,24,0,-24,-1,-78,-1,-128,-1,80,-1,31,-1,-7,-2,-47,-2,-78,-2,-106,-2,-126,-2,113,-2,109,-2,102,-2,112,-2,120,-2,-115,-2,-93,-2,-60,-2,-30,-2,16,-1,54,-1,104,-1,-103,-1,-53,-1,1,0,50,0,102,0,-104,0,-59,0,-14,0,23,1,60,1,88,1,112,1,-125,1,-115,1,-110,1,-110,1,-123,1,124,1,100,1,73,1,43,1,2,1,-35,0,-83,0,-127,0,75,0,27,0,-25,-1,-76,-1,-125,-1,83,-1,38,-1,-1,-2,-39,-2,-70,-2,-98,-2,-116,-2,123,-2,117,-2,115,-2,118,-2,-122,-2,-110,-2,-81,-2,-57,-2,-17,-2,16,-1,64,-1,105,-1,-101,-1,-50,-1,-1,-1,52,0,97,0,-107,0,-64,0,-20,0,18,1,50,1,81,1,103,1,122,1,-126,1,-118,1,-123,1,-128,1,111,1,93,1,64,1,37,1,-5,0,-40,0,-87,0,125,0,75,0,24,0,-22,-1,-76,-1,-120,-1,86,-1,43,-1,6,-1,-32,-2,-62,-2,-89,-2,-109,-2,-121,-2,125,-2,125,-2,-126,-2,-118,-2,-95,-2,-79,-2,-43,-2,-17,-2,28,-1,64,-1,110,-1,-96,-1,-52,-1,1,0,49,0,95,0,-109,0,-71,0,-23,0,7,1,47,1,70,1,95,1,112,1,122,1,127,1,125,1,117,1,103,1,85,1,56,1,28,1,-8,0,-49,0,-87,0,118,0,75,0,24,0,-23,-1,-73,-1,-118,-1,91,-1,48,-1,13,-1,-27,-2,-53,-2,-80,-2,-101,-2,-111,-2,-122,-2,-123,-2,-114,-2,-111,-2,-84,-2,-73,-2,-35,-2,-10,-2,33,-1,69,-1,115,-1,-96,-1,-50,-1,2,0,45,0,97,0,-118,0,-70,0,-34,0,5,1,37,1,63,1,87,1,102,1,114,1,116,1,118,1,106,1,95,1,77,1,47,1,23,1,-16,0,-52,0,-93,0,117,0,71,0,25,0,-23,-1,-70,-1,-117,-1,95,-1,55,-1,16,-1,-16,-2,-50,-2,-69,-2,-94,-2,-100,-2,-114,-2,-113,-2,-107,-2,-100,-2,-78,-2,-61,-2,-32,-2,0,-1,35,-1,76,-1,117,-1,-93,-1,-47,-1,-1,-1,46,0,93,0,-119,0,-77,0,-37,0,-4,0,32,1,54,1,79,1,94,1,103,1,109,1,107,1,99,1,86,1,68,1,41,1,15,1,-21,0,-58,0,-96,0,114,0,70,0,23,0,-22,-1,-69,-1,-112,-1,98,-1,59,-1,23,-1,-11,-2,-41,-2,-61,-2,-86,-2,-92,-2,-105,-2,-103,-2,-99,-2,-90,-2,-72,-2,-52,-2,-26,-2,7,-1,40,-1,81,-1,120,-1,-91,-1,-46,-1,-1,-1,47,0,88,0,-121,0,-81,0,-44,0,-7,0,21,1,50,1,68,1,87,1,94,1,100,1,98,1,90,1,78,1,60,1,34,1,8,1,-28,0,-59,0,-105,0,116,0,64,0,26,0,-24,-1,-66,-1,-111,-1,104,-1,63,-1,28,-1,-5,-2,-32,-2,-55,-2,-76,-2,-85,-2,-96,-2,-93,-2,-92,-2,-80,-2,-66,-2,-43,-2,-20,-2,14,-1,45,-1,84,-1,124,-1,-89,-1,-45,-1,0,0,44,0,88,0,-126,0,-85,0,-49,0,-13,0,14,1,44,1,58,1,80,1,85,1,92,1,89,1,82,1,70,1,52,1,28,1,0,1,-31,0,-67,0,-105,0,110,0,65,0,23,0,-20,-1,-68,-1,-105,-1,105,-1,69,-1,35,-1,-1,-2,-22,-2,-52,-2,-63,-2,-80,-2,-85,-2,-86,-2,-84,-2,-71,-2,-57,-2,-38,-2,-10,-2,17,-1,50,-1,91,-1,124,-1,-84,-1,-45,-1,-1,-1,44,0,85,0,127,0,-87,0,-56,0,-20,0,11,1,30,1,60,1,64,1,81,1,81,1,81,1,75,1,61,1,45,1,20,1,-5,0,-37,0,-72,0,-108,0,106,0,65,0,21,0,-20,-1,-64,-1,-105,-1,110,-1,74,-1,37,-1,10,-1,-19,-2,-41,-2,-58,-2,-71,-2,-77,-2,-78,-2,-73,-2,-66,-2,-49,-2,-30,-2,-5,-2,24,-1,56,-1,93,-1,-127,-1,-83,-1,-44,-1,0,0,42,0,84,0,123,0,-91,0,-62,0,-22,0,-1,0,30,1,45,1,60,1,73,1,71,1,76,1,64,1,54,1,37,1,15,1,-13,0,-41,0,-77,0,-112,0,104,0,63,0,21,0,-20,-1,-62,-1,-103,-1,114,-1,77,-1,45,-1,14,-1,-12,-2,-34,-2,-51,-2,-62,-2,-68,-2,-72,-2,-64,-2,-59,-2,-39,-2,-26,-2,4,-1,27,-1,63,-1,95,-1,-121,-1,-85,-1,-39,-1,-3,-1,43,0,80,0,123,0,-99,0,-62,0,-32,0,-5,0,23,1,36,1,56,1,60,1,68,1,63,1,60,1,44,1,32,1,7,1,-18,0,-46,0,-82,0,-116,0,103,0,61,0,20,0,-17,-1,-65,-1,-96,-1,114,-1,84,-1,49,-1,20,-1,-6,-2,-27,-2,-41,-2,-58,-2}; }
	private static byte[] data15(){ return new byte[] {-56,-2,-68,-2,-54,-2,-50,-2,-36,-2,-14,-2,6,-1,36,-1,65,-1,101,-1,-121,-1,-79,-1,-42,-1,1,0,39,0,80,0,117,0,-100,0,-69,0,-36,0,-11,0,15,1,30,1,46,1,55,1,57,1,60,1,47,1,42,1,19,1,6,1,-29,0,-47,0,-89,0,-116,0,97,0,60,0,21,0,-20,-1,-58,-1,-99,-1,122,-1,85,-1,55,-1,25,-1,3,-1,-22,-2,-34,-2,-48,-2,-55,-2,-49,-2,-58,-2,-34,-2,-34,-2,-6,-2,13,-1,39,-1,73,-1,102,-1,-117,-1,-77,-1,-41,-1,0,0,40,0,76,0,116,0,-104,0,-75,0,-40,0,-17,0,8,1,23,1,41,1,43,1,56,1,44,1,47,1,29,1,18,1,-5,0,-30,0,-58,0,-88,0,-124,0,99,0,57,0,19,0,-17,-1,-59,-1,-95,-1,124,-1,90,-1,60,-1,31,-1,8,-1,-15,-2,-27,-2,-40,-2,-47,-2,-45,-2,-44,-2,-35,-2,-19,-2,-6,-2,23,-1,43,-1,77,-1,106,-1,-113,-1,-77,-1,-39,-1,1,0,37,0,76,0,112,0,-108,0,-78,0,-45,0,-26,0,5,1,15,1,33,1,38,1,44,1,41,1,38,1,22,1,12,1,-14,0,-31,0,-66,0,-90,0,127,0,98,0,54,0,22,0,-21,-1,-55,-1,-93,-1,-128,-1,92,-1,67,-1,33,-1,18,-1,-11,-2,-18,-2,-35,-2,-38,-2,-38,-2,-38,-2,-26,-2,-13,-2,1,-1,28,-1,48,-1,82,-1,108,-1,-107,-1,-79,-1,-35,-1,-2,-1,38,0,73,0,111,0,-113,0,-82,0,-51,0,-30,0,-2,0,7,1,29,1,28,1,40,1,31,1,31,1,16,1,5,1,-19,0,-38,0,-69,0,-96,0,126,0,93,0,55,0,19,0,-17,-1,-57,-1,-88,-1,-128,-1,99,-1,69,-1,42,-1,19,-1,0,-1,-15,-2,-26,-2,-30,-2,-34,-2,-27,-2,-22,-2,-6,-2,9,-1,30,-1,58,-1,81,-1,117,-1,-110,-1,-72,-1,-37,-1,0,0,35,0,74,0,105,0,-114,0,-86,0,-59,0,-31,0,-13,0,5,1,18,1,24,1,30,1,27,1,23,1,9,1,-1,0,-25,0,-43,0,-74,0,-98,0,121,0,92,0,53,0,19,0,-17,-1,-54,-1,-89,-1,-122,-1,101,-1,76,-1,45,-1,27,-1,4,-1,-7,-2,-19,-2,-24,-2,-26,-2,-21,-2,-14,-2,0,-1,13,-1,39,-1,58,-1,91,-1,115,-1,-103,-1,-73,-1,-36,-1,3,0,30,0,75,0,102,0,-118,0,-90,0,-62,0,-40,0,-16,0,-2,0,10,1,20,1,19,1,24,1,13,1,6,1,-11,0,-28,0,-50,0,-76,0,-105,0,121,0,87,0,53,0,20,0,-20,-1,-50,-1,-88,-1,-119,-1,107,-1,76,-1,55,-1,27,-1,15,-1,-3,-2,-12,-2,-17,-2,-19,-2,-14,-2,-8,-2,6,-1,20,-1,43,-1,65,-1,92,-1,121,-1,-103,-1,-68,-1,-38,-1,3,0,32,0,70,0,101,0,-121,0,-96,0,-64,0,-46,0,-23,0,-7,0,3,1,13,1,14,1,15,1,8,1,-2,0,-15,0,-34,0,-56,0,-79,0,-111,0,121,0,83,0,54,0,15,0,-14,-1,-53,-1,-83,-1,-117,-1,109,-1,82,-1,58,-1,36,-1,18,-1,5,-1,-7,-2,-10,-2,-11,-2,-9,-2,0,-1,10,-1,29,-1,45,-1,72,-1,94,-1,126,-1,-101,-1,-68,-1,-33,-1,-2,-1,36,0,63,0,104,0,126,0,-94,0,-75,0,-46,0,-32,0,-12,0,-3,0,6,1,7,1,10,1,-2,0,-4,0,-24,0,-38,0,-61,0,-85,0,-112,0,116,0,82,0,52,0,16,0,-16,-1,-49,-1,-84,-1,-112,-1,111,-1,89,-1,60,-1,43,-1,23,-1,10,-1,2,-1,-4,-2,-7,-2,1,-1,2,-1,21,-1,30,-1,53,-1,74,-1,100,-1,-128,-1,-98,-1,-66,-1,-33,-1,-2,-1,34,0,65,0,98,0,126,0,-100,0,-78,0,-53,0,-34,0,-22,0,-5,0,-4,0,4,1,0,1,-4,0,-14,0,-27,0,-45,0,-65,0,-89,0,-115,0,112,0,82,0,48,0,17,0,-15,-1,-50,-1,-78,-1,-113,-1,117,-1,91,-1,66,-1,48,-1,29,-1,17,-1,6,-1,4,-1,-2,-2,9,-1,6,-1,28,-1,35,-1,58,-1,80,-1,101,-1,-122,-1,-99,-1,-61,-1,-36,-1,3,0,30,0,64,0,95,0,124,0,-106,0,-79,0,-60,0,-40,0,-25,0,-15,0,-7,0,-4,0,-6,0,-10,0,-20,0,-32,0,-51,0,-69,0,-94,0,-118,0,110,0,78,0,49,0,17,0,-18,-1,-44,-1,-82,-1,-105,-1,118,-1,96,-1,70,-1,53,-1,34,-1,23,-1,13,-1,8,-1,7,-1,11,-1,19,-1,26,-1,45,-1,61,-1,84,-1,108,-1,-123,-1,-93,-1,-63,-1,-32,-1,1,0,28,0,66,0,89,0,123,0,-110,0,-84,0,-65,0,-45,0}; }
	private static byte[] data16(){ return new byte[] {-30,0,-22,0,-12,0,-11,0,-12,0,-15,0,-27,0,-37,0,-56,0,-73,0,-98,0,-122,0,108,0,75,0,50,0,13,0,-13,-1,-48,-1,-75,-1,-106,-1,123,-1,99,-1,75,-1,58,-1,40,-1,28,-1,19,-1,14,-1,15,-1,14,-1,26,-1,33,-1,48,-1,68,-1,85,-1,115,-1,-123,-1,-88,-1,-63,-1,-31,-1,1,0,29,0,60,0,93,0,115,0,-110,0,-91,0,-68,0,-50,0,-38,0,-24,0,-21,0,-15,0,-19,0,-21,0,-32,0,-42,0,-62,0,-77,0,-102,0,-124,0,103,0,76,0,46,0,16,0,-16,-1,-44,-1,-76,-1,-101,-1,125,-1,103,-1,80,-1,61,-1,48,-1,29,-1,31,-1,13,-1,26,-1,18,-1,31,-1,40,-1,51,-1,75,-1,88,-1,117,-1,-116,-1,-91,-1,-57,-1,-33,-1,2,0,29,0,58,0,90,0,113,0,-113,0,-97,0,-69,0,-58,0,-41,0,-31,0,-28,0,-18,0,-26,0,-27,0,-36,0,-52,0,-60,0,-87,0,-103,0,-127,0,98,0,78,0,41,0,17,0,-15,-1,-44,-1,-73,-1,-100,-1,-126,-1,104,-1,87,-1,64,-1,53,-1,38,-1,30,-1,27,-1,23,-1,31,-1,32,-1,47,-1,57,-1,76,-1,96,-1,118,-1,-112,-1,-89,-1,-57,-1,-30,-1,0,0,30,0,56,0,86,0,113,0,-120,0,-96,0,-80,0,-57,0,-52,0,-32,0,-34,0,-26,0,-29,0,-35,0,-41,0,-54,0,-68,0,-88,0,-108,0,124,0,99,0,73,0,42,0,16,0,-15,-1,-42,-1,-72,-1,-97,-1,-125,-1,112,-1,87,-1,72,-1,56,-1,43,-1,38,-1,30,-1,32,-1,33,-1,40,-1,49,-1,65,-1,79,-1,100,-1,122,-1,-112,-1,-84,-1,-56,-1,-31,-1,2,0,27,0,57,0,83,0,111,0,-125,0,-99,0,-84,0,-62,0,-56,0,-38,0,-40,0,-31,0,-36,0,-38,0,-47,0,-59,0,-73,0,-93,0,-110,0,119,0,100,0,66,0,47,0,10,0,-9,-1,-46,-1,-66,-1,-98,-1,-120,-1,115,-1,91,-1,78,-1,58,-1,51,-1,40,-1,39,-1,35,-1,39,-1,45,-1,56,-1,67,-1,85,-1,103,-1,124,-1,-106,-1,-84,-1,-56,-1,-28,-1,1,0,26,0,56,0,82,0,105,0,-123,0,-108,0,-84,0,-70,0,-57,0,-48,0,-41,0,-40,0,-38,0,-46,0,-51,0,-64,0,-78,0,-96,0,-114,0,117,0,95,0,69,0,39,0,17,0,-15,-1,-41,-1,-66,-1,-96,-1,-115,-1,115,-1,98,-1,80,-1,64,-1,56,-1,46,-1,42,-1,42,-1,45,-1,48,-1,64,-1,68,-1,92,-1,105,-1,-126,-1,-107,-1,-79,-1,-56,-1,-26,-1,-1,-1,28,0,53,0,79,0,106,0,125,0,-108,0,-89,0,-77,0,-58,0,-58,0,-42,0,-48,0,-42,0,-52,0,-55,0,-70,0,-81,0,-101,0,-117,0,114,0,93,0,67,0,39,0,16,0,-16,-1,-37,-1,-69,-1,-87,-1,-118,-1,122,-1,100,-1,84,-1,71,-1,59,-1,51,-1,48,-1,47,-1,49,-1,57,-1,62,-1,80,-1,90,-1,112,-1,-125,-1,-103,-1,-78,-1,-53,-1,-27,-1,-1,-1,27,0,52,0,78,0,102,0,123,0,-112,0,-93,0,-80,0,-66,0,-58,0,-52,0,-49,0,-49,0,-56,0,-62,0,-72,0,-88,0,-101,0,-124,0,114,0,88,0,67,0,38,0,14,0,-12,-1,-40,-1,-64,-1,-89,-1,-112,-1,124,-1,104,-1,89,-1,74,-1,63,-1,59,-1,50,-1,54,-1,54,-1,60,-1,70,-1,81,-1,96,-1,115,-1,-121,-1,-102,-1,-75,-1,-53,-1,-25,-1,0,0,24,0,53,0,74,0,102,0,117,0,-111,0,-102,0,-81,0,-72,0,-63,0,-56,0,-54,0,-56,0,-60,0,-65,0,-79,0,-89,0,-108,0,-125,0,109,0,89,0,62,0,41,0,10,0,-9,-1,-41,-1,-60,-1,-89,-1,-108,-1,127,-1,108,-1,93,-1,78,-1,69,-1,62,-1,58,-1,56,-1,60,-1,64,-1,75,-1,86,-1,99,-1,120,-1,-122,-1,-94,-1,-79,-1,-46,-1,-30,-1,4,0,22,0,51,0,74,0,96,0,119,0,-119,0,-103,0,-87,0,-75,0,-69,0,-58,0,-64,0,-56,0,-67,0,-70,0,-81,0,-97,0,-107,0,124,0,109,0,85,0,62,0,39,0,11,0,-11,-1,-38,-1,-61,-1,-83,-1,-108,-1,-125,-1,110,-1,98,-1,82,-1,75,-1,66,-1,61,-1,63,-1,62,-1,72,-1,78,-1,90,-1,103,-1,121,-1,-115,-1,-95,-1,-75,-1,-47,-1,-27,-1,2,0,22,0,50,0,71,0,96,0,115,0,-125,0,-102,0,-95,0,-77,0,-74,0,-65,0,-65,0,-65,0,-67,0,-79,0,-82,0,-102,0,-112,0,123,0,106,0,82,0,62,0,35,0,14,0,-13,-1,-35,-1,-60,-1,-83,-1,-104,-1,-122,-1}; }
	private static byte[] data17(){ return new byte[] {114,-1,103,-1,83,-1,82,-1,68,-1,69,-1,66,-1,68,-1,75,-1,82,-1,95,-1,107,-1,124,-1,-111,-1,-97,-1,-66,-1,-53,-1,-21,-1,-1,-1,22,0,50,0,68,0,95,0,109,0,-123,0,-112,0,-93,0,-86,0,-75,0,-72,0,-69,0,-69,0,-73,0,-81,0,-88,0,-106,0,-115,0,120,0,103,0,81,0,59,0,35,0,13,0,-12,-1,-35,-1,-58,-1,-81,-1,-101,-1,-121,-1,120,-1,104,-1,91,-1,84,-1,72,-1,76,-1,67,-1,77,-1,76,-1,89,-1,96,-1,114,-1,124,-1,-106,-1,-95,-1,-66,-1,-49,-1,-23,-1,0,0,24,0,44,0,71,0,89,0,109,0,-128,0,-113,0,-101,0,-86,0,-83,0,-74,0,-74,0,-74,0,-78,0,-84,0,-95,0,-105,0,-122,0,119,0,99,0,80,0,57,0,36,0,10,0,-9,-1,-37,-1,-54,-1,-80,-1,-99,-1,-116,-1,121,-1,108,-1,96,-1,86,-1,80,-1,76,-1,76,-1,77,-1,84,-1,90,-1,103,-1,114,-1,-125,-1,-107,-1,-90,-1,-66,-1,-47,-1,-23,-1,0,0,22,0,46,0,67,0,87,0,108,0,122,0,-114,0,-104,0,-93,0,-84,0,-81,0,-77,0,-78,0,-83,0,-88,0,-99,0,-109,0,-125,0,116,0,98,0,75,0,59,0,32,0,12,0,-10,-1,-34,-1,-56,-1,-76,-1,-96,-1,-116,-1,-128,-1,108,-1,103,-1,88,-1,86,-1,79,-1,80,-1,83,-1,87,-1,95,-1,105,-1,119,-1,-123,-1,-105,-1,-86,-1,-66,-1,-45,-1,-23,-1,0,0,22,0,44,0,67,0,83,0,106,0,120,0,-119,0,-107,0,-97,0,-89,0,-84,0,-82,0,-83,0,-86,0,-93,0,-102,0,-113,0,-128,0,112,0,97,0,73,0,57,0,32,0,11,0,-9,-1,-35,-1,-51,-1,-79,-1,-90,-1,-115,-1,-124,-1,112,-1,105,-1,93,-1,89,-1,85,-1,84,-1,86,-1,93,-1,96,-1,112,-1,119,-1,-117,-1,-104,-1,-83,-1,-66,-1,-42,-1,-24,-1,1,0,21,0,44,0,63,0,84,0,101,0,119,0,-124,0,-109,0,-103,0,-90,0,-91,0,-84,0,-89,0,-89,0,-99,0,-103,0,-119,0,127,0,109,0,92,0,75,0,52,0,33,0,12,0,-12,-1,-31,-1,-53,-1,-74,-1,-91,-1,-108,-1,-127,-1,122,-1,104,-1,100,-1,92,-1,89,-1,89,-1,89,-1,98,-1,100,-1,115,-1,124,-1,-116,-1,-100,-1,-82,-1,-64,-1,-41,-1,-22,-1,-1,-1,23,0,39,0,66,0,78,0,101,0,115,0,-127,0,-113,0,-105,0,-97,0,-92,0,-90,0,-93,0,-93,0,-100,0,-111,0,-118,0,120,0,108,0,90,0,73,0,51,0,32,0,10,0,-10,-1,-30,-1,-53,-1,-70,-1,-90,-1,-107,-1,-120,-1,121,-1,111,-1,103,-1,95,-1,94,-1,92,-1,95,-1,99,-1,106,-1,117,-1,-128,-1,-114,-1,-97,-1,-81,-1,-61,-1,-42,-1,-20,-1,-1,-1,21,0,41,0,60,0,80,0,97,0,112,0,127,0,-117,0,-111,0,-97,0,-100,0,-91,0,-98,0,-96,0,-108,0,-109,0,-127,0,122,0,103,0,89,0,69,0,52,0,30,0,12,0,-13,-1,-26,-1,-55,-1,-65,-1,-91,-1,-100,-1,-122,-1,-127,-1,111,-1,108,-1,99,-1,99,-1,94,-1,101,-1,101,-1,111,-1,121,-1,-128,-1,-107,-1,-98,-1,-77,-1,-60,-1,-41,-1,-21,-1,2,0,17,0,43,0,56,0,81,0,91,0,112,0,123,0,-123,0,-108,0,-108,0,-99,0,-97,0,-103,0,-98,0,-111,0,-115,0,-127,0,116,0,103,0,85,0,70,0,47,0,33,0,8,0,-8,-1,-30,-1,-50,-1,-66,-1,-87,-1,-100,-1,-115,-1,126,-1,122,-1,105,-1,107,-1,100,-1,99,-1,106,-1,103,-1,116,-1,121,-1,-120,-1,-109,-1,-92,-1,-77,-1,-59,-1,-38,-1,-21,-1,0,0,20,0,39,0,57,0,77,0,91,0,107,0,122,0,-127,0,-112,0,-111,0,-102,0,-103,0,-104,0,-104,0,-114,0,-118,0,125,0,115,0,98,0,84,0,68,0,46,0,32,0,8,0,-9,-1,-27,-1,-52,-1,-62,-1,-87,-1,-95,-1,-116,-1,-122,-1,119,-1,115,-1,106,-1,106,-1,103,-1,108,-1,108,-1,120,-1,123,-1,-116,-1,-107,-1,-89,-1,-76,-1,-56,-1,-39,-1,-20,-1,2,0,17,0,39,0,56,0,74,0,91,0,103,0,118,0,-128,0,-118,0,-112,0,-108,0,-106,0,-107,0,-109,0,-117,0,-120,0,120,0,113,0,96,0,81,0,67,0,46,0,29,0,10,0,-10,-1,-27,-1,-48,-1,-64,-1,-81,-1,-96,-1,-110,-1,-121,-1,122,-1,120,-1,108,-1,111,-1,107,-1,109,-1,116,-1,118,-1,-126,-1,-115,-1,-103,-1,-88,-1,-74,-1,-55,-1,-38,-1,-18,-1,0,0,17,0,39,0,54,0}; }
	private static byte[] data18(){ return new byte[] {73,0,87,0,103,0,113,0,127,0,-123,0,-115,0,-110,0,-113,0,-107,0,-116,0,-117,0,-127,0,120,0,108,0,95,0,81,0,61,0,49,0,25,0,12,0,-10,-1,-28,-1,-44,-1,-65,-1,-77,-1,-95,-1,-107,-1,-119,-1,-128,-1,120,-1,115,-1,112,-1,112,-1,112,-1,119,-1,122,-1,-122,-1,-113,-1,-101,-1,-85,-1,-74,-1,-50,-1,-41,-1,-15,-1,-1,-1,16,0,40,0,49,0,75,0,82,0,101,0,112,0,122,0,-125,0,-120,0,-114,0,-113,0,-114,0,-117,0,-122,0,126,0,119,0,102,0,96,0,76,0,62,0,46,0,26,0,11,0,-11,-1,-24,-1,-48,-1,-58,-1,-79,-1,-91,-1,-104,-1,-117,-1,-124,-1,122,-1,120,-1,114,-1,117,-1,114,-1,123,-1,126,-1,-121,-1,-109,-1,-98,-1,-85,-1,-69,-1,-54,-1,-34,-1,-19,-1,0,0,19,0,32,0,57,0,64,0,87,0,95,0,109,0,121,0,126,0,-121,0,-120,0,-116,0,-117,0,-120,0,-125,0,121,0,118,0,99,0,94,0,72,0,64,0,42,0,27,0,9,0,-9,-1,-26,-1,-43,-1,-60,-1,-76,-1,-87,-1,-106,-1,-110,-1,-124,-1,-127,-1,119,-1,121,-1,117,-1,120,-1,127,-1,125,-1,-112,-1,-112,-1,-93,-1,-82,-1,-69,-1,-50,-1,-36,-1,-18,-1,2,0,15,0,36,0,50,0,68,0,80,0,97,0,103,0,120,0,122,0,-124,0,-123,0,-119,0,-121,0,-123,0,127,0,121,0,110,0,102,0,88,0,73,0,61,0,40,0,29,0,6,0,-6,-1,-28,-1,-40,-1,-59,-1,-74,-1,-86,-1,-102,-1,-107,-1,-121,-1,-125,-1,123,-1,125,-1,119,-1,126,-1,126,-1,-123,-1,-114,-1,-106,-1,-91,-1,-83,-1,-63,-1,-53,-1,-32,-1,-19,-1,1,0,17,0,33,0,51,0,63,0,81,0,92,0,104,0,114,0,120,0,-126,0,127,0,-119,0,-128,0,-124,0,124,0,117,0,110,0,96,0,87,0,72,0,58,0,42,0,26,0,7,0,-7,-1,-26,-1,-40,-1,-58,-1,-70,-1,-88,-1,-94,-1,-110,-1,-115,-1,-123,-1,126,-1,-127,-1,122,-1,-127,-1,-127,-1,-119,-1,-112,-1,-102,-1,-92,-1,-77,-1,-65,-1,-49,-1,-33,-1,-17,-1,0,0,17,0,32,0,49,0,64,0,77,0,91,0,101,0,111,0,118,0,125,0,127,0,-126,0,-127,0,125,0,123,0,114,0,106,0,96,0,83,0,72,0,55,0,41,0,26,0,6,0,-5,-1,-27,-1,-39,-1,-56,-1,-69,-1,-85,-1,-93,-1,-106,-1,-113,-1,-120,-1,-126,-1,-126,-1,-128,-1,-127,-1,-121,-1,-118,-1,-110,-1,-97,-1,-93,-1,-71,-1,-68,-1,-44,-1,-35,-1,-14,-1,-2,-1,17,0,31,0,48,0,63,0,74,0,90,0,97,0,109,0,115,0,122,0,123,0,-127,0,123,0,126,0,115,0,115,0,100,0,97,0,79,0,71,0,52,0,43,0,21,0,11,0,-10,-1,-22,-1,-41,-1,-53,-1,-69,-1,-80,-1,-93,-1,-103,-1,-110,-1,-118,-1,-121,-1,-125,-1,-123,-1,-126,-1,-116,-1,-118,-1,-103,-1,-100,-1,-84,-1,-77,-1,-59,-1,-49,-1,-30,-1,-16,-1,-1,-1,16,0,31,0,47,0,61,0,72,0,87,0,96,0,106,0,113,0,117,0,123,0,122,0,124,0,119,0,115,0,111,0,99,0,92,0,80,0,66,0,55,0,37,0,25,0,7,0,-7,-1,-23,-1,-39,-1,-53,-1,-65,-1,-81,-1,-89,-1,-100,-1,-109,-1,-113,-1,-120,-1,-121,-1,-120,-1,-122,-1,-115,-1,-114,-1,-101,-1,-97,-1,-83,-1,-73,-1,-61,-1,-43,-1,-34,-1,-13,-1,-2,-1,16,0,32,0,42,0,62,0,71,0,83,0,95,0,102,0,111,0,115,0,120,0,117,0,123,0,115,0,114,0,105,0,101,0,86,0,81,0,62,0,54,0,39,0,20,0,11,0,-10,-1,-21,-1,-38,-1,-51,-1,-67,-1,-74,-1,-90,-1,-98,-1,-102,-1,-117,-1,-110,-1,-123,-1,-116,-1,-118,-1,-114,-1,-107,-1,-104,-1,-90,-1,-84,-1,-71,-1,-57,-1,-46,-1,-29,-1,-16,-1,1,0,13,0,33,0,39,0,64,0,64,0,87,0,88,0,103,0,106,0,113,0,117,0,115,0,119,0,113,0,110,0,105,0,95,0,88,0,74,0,66,0,48,0,40,0,21,0,7,0,-6,-1,-23,-1,-37,-1,-48,-1,-66,-1,-73,-1,-87,-1,-95,-1,-103,-1,-108,-1,-113,-1,-116,-1,-115,-1,-116,-1,-109,-1,-107,-1,-99,-1,-90,-1,-81,-1,-69,-1,-56,-1,-46,-1,-26,-1,-18,-1,2,0,14,0,28,0,44,0,56,0,68,0,81,0,88,0,99,0,104,0,111,0,111,0,116,0,113,0,112,0,107,0,101,0,94,0,85,0,73,0,63,0,50,0,35,0,24,0,4,0,-3,-1}; }
	private static byte[] data19(){ return new byte[] {-25,-1,-33,-1,-51,-1,-61,-1,-73,-1,-84,-1,-93,-1,-101,-1,-105,-1,-111,-1,-112,-1,-114,-1,-111,-1,-108,-1,-104,-1,-96,-1,-89,-1,-78,-1,-68,-1,-53,-1,-46,-1,-25,-1,-18,-1,3,0,13,0,28,0,43,0,53,0,70,0,74,0,91,0,93,0,103,0,107,0,111,0,110,0,113,0,107,0,106,0,98,0,92,0,83,0,71,0,63,0,46,0,37,0,20,0,9,0,-8,-1,-21,-1,-35,-1,-48,-1,-60,-1,-71,-1,-83,-1,-90,-1,-98,-1,-104,-1,-107,-1,-110,-1,-110,-1,-109,-1,-106,-1,-101,-1,-93,-1,-87,-1,-76,-1,-66,-1,-55,-1,-40,-1,-29,-1,-14,-1,1,0,12,0,29,0,40,0,54,0,65,0,77,0,83,0,95,0,99,0,104,0,110,0,106,0,110,0,105,0,102,0,99,0,86,0,83,0,69,0,59,0,49,0,33,0,20,0,10,0,-10,-1,-18,-1,-35,-1,-48,-1,-56,-1,-73,-1,-76,-1,-92,-1,-93,-1,-102,-1,-105,-1,-107,-1,-107,-1,-107,-1,-102,-1,-99,-1,-92,-1,-84,-1,-75,-1,-63,-1,-53,-1,-42,-1,-25,-1,-17,-1,3,0,13,0,25,0,43,0,49,0,66,0,73,0,83,0,92,0,96,0,104,0,102,0,109,0,104,0,104,0,101,0,92,0,88,0,79,0,68,0,59,0,45,0,34,0,20,0,7,0,-7,-1,-19,-1,-34,-1,-45,-1,-59,-1,-66,-1,-80,-1,-83,-1,-97,-1,-95,-1,-106,-1,-101,-1,-107,-1,-103,-1,-100,-1,-97,-1,-89,-1,-82,-1,-73,-1,-62,-1,-52,-1,-39,-1,-28,-1,-11,-1,-3,-1,16,0,25,0,38,0,53,0,60,0,74,0,80,0,89,0,95,0,99,0,103,0,104,0,103,0,101,0,96,0,94,0,83,0,79,0,64,0,59,0,44,0,33,0,19,0,7,0,-6,-1,-20,-1,-31,-1,-47,-1,-54,-1,-67,-1,-76,-1,-85,-1,-89,-1,-98,-1,-99,-1,-101,-1,-106,-1,-96,-1,-103,-1,-90,-1,-90,-1,-78,-1,-73,-1,-59,-1,-53,-1,-36,-1,-27,-1,-13,-1,0,0,13,0,25,0,40,0,47,0,63,0,68,0,82,0,84,0,95,0,94,0,102,0,100,0,102,0,98,0,94,0,91,0,81,0,77,0,64,0,56,0,43,0,33,0,18,0,7,0,-5,-1,-22,-1,-27,-1,-48,-1,-51,-1,-68,-1,-71,-1,-85,-1,-87,-1,-93,-1,-100,-1,-97,-1,-102,-1,-97,-1,-97,-1,-90,-1,-87,-1,-77,-1,-69,-1,-61,-1,-48,-1,-37,-1,-27,-1,-11,-1,-2,-1,14,0,25,0,37,0,47,0,61,0,67,0,79,0,83,0,91,0,94,0,98,0,99,0,98,0,95,0,95,0,85,0,83,0,71,0,65,0,54,0,43,0,30,0,20,0,5,0,-4,-1,-21,-1,-28,-1,-45,-1,-51,-1,-65,-1,-72,-1,-79,-1,-88,-1,-90,-1,-96,-1,-98,-1,-95,-1,-99,-1,-91,-1,-91,-1,-81,-1,-79,-1,-64,-1,-62,-1,-45,-1,-38,-1,-24,-1,-12,-1,-2,-1,15,0,22,0,38,0,46,0,58,0,67,0,76,0,81,0,89,0,93,0,94,0,97,0,95,0,94,0,90,0,87,0,77,0,72,0,62,0,52,0,42,0,31,0,17,0,8,0,-7,-1,-18,-1,-29,-1,-44,-1,-49,-1,-64,-1,-69,-1,-78,-1,-86,-1,-89,-1,-92,-1,-96,-1,-93,-1,-97,-1,-88,-1,-89,-1,-80,-1,-75,-1,-66,-1,-56,-1,-47,-1,-36,-1,-24,-1,-12,-1,-1,-1,14,0,22,0,36,0,47,0,54,0,68,0,72,0,82,0,84,0,93,0,88,0,99,0,90,0,94,0,86,0,84,0,76,0,71,0,59,0,52,0,41,0,28,0,21,0,2,0,-3,-1,-19,-1,-28,-1,-42,-1,-48,-1,-65,-1,-64,-1,-79,-1,-82,-1,-86,-1,-92,-1,-91,-1,-94,-1,-90,-1,-92,-1,-81,-1,-82,-1,-71,-1,-65,-1,-56,-1,-44,-1,-36,-1,-23,-1,-12,-1,-1,-1,13,0,23,0,33,0,48,0,51,0,67,0,70,0,79,0,85,0,85,0,94,0,89,0,93,0,89,0,86,0,80,0,77,0,66,0,61,0,48,0,42,0,27,0,19,0,5,0,-6,-1,-17,-1,-28,-1,-40,-1,-49,-1,-60,-1,-65,-1,-78,-1,-75,-1,-91,-1,-84,-1,-91,-1,-93,-1,-84,-1,-94,-1,-76,-1,-82,-1,-68,-1,-64,-1,-54,-1,-44,-1,-35,-1,-21,-1,-15,-1,5,0,6,0,27,0,31,0,44,0,56,0,59,0,72,0,76,0,81,0,88,0,86,0,91,0,88,0,87,0,85,0,78,0,74,0,67,0,56,0,51,0,36,0,30,0,18,0,3,0,-1,-1,-23,-1,-22,-1,-42,-1,-47,-1,-57,-1,-66,-1,-73,-1,-77,-1,-86,-1,-81,-1,-94,-1,-82,-1,-93,-1,-80,-1,-84,-1,-74,-1,-69,-1,-61,-1,-54,-1,-42,-1,-34,-1,-22,-1}; }
	private static byte[] data20(){ return new byte[] {-11,-1,-1,-1,11,0,24,0,30,0,46,0,50,0,62,0,68,0,73,0,83,0,80,0,91,0,82,0,90,0,84,0,82,0,78,0,70,0,65,0,57,0,46,0,41,0,24,0,19,0,4,0,-4,-1,-17,-1,-27,-1,-37,-1,-49,-1,-52,-1,-69,-1,-66,-1,-80,-1,-79,-1,-85,-1,-85,-1,-87,-1,-84,-1,-84,-1,-77,-1,-76,-1,-65,-1,-62,-1,-49,-1,-45,-1,-30,-1,-24,-1,-9,-1,-2,-1,12,0,21,0,32,0,43,0,49,0,61,0,65,0,74,0,78,0,81,0,85,0,84,0,86,0,82,0,81,0,74,0,71,0,62,0,56,0,46,0,37,0,27,0,16,0,5,0,-5,-1,-15,-1,-28,-1,-35,-1,-48,-1,-53,-1,-63,-1,-68,-1,-76,-1,-78,-1,-83,-1,-83,-1,-85,-1,-81,-1,-82,-1,-77,-1,-71,-1,-67,-1,-57,-1,-50,-1,-42,-1,-31,-1,-22,-1,-10,-1,0,0,10,0,22,0,30,0,42,0,49,0,58,0,66,0,70,0,77,0,78,0,84,0,82,0,84,0,79,0,79,0,73,0,69,0,60,0,56,0,43,0,37,0,26,0,15,0,7,0,-5,-1,-18,-1,-23,-1,-39,-1,-41,-1,-56,-1,-59,-1,-69,-1,-71,-1,-79,-1,-78,-1,-84,-1,-80,-1,-82,-1,-79,-1,-74,-1,-71,-1,-64,-1,-56,-1,-50,-1,-40,-1,-30,-1,-23,-1,-8,-1,-1,-1,10,0,22,0,28,0,41,0,50,0,53,0,68,0,65,0,78,0,75,0,81,0,82,0,79,0,81,0,74,0,73,0,66,0,61,0,51,0,46,0,33,0,27,0,15,0,6,0,-6,-1,-14,-1,-26,-1,-35,-1,-43,-1,-53,-1,-58,-1,-67,-1,-70,-1,-76,-1,-78,-1,-79,-1,-81,-1,-79,-1,-75,-1,-76,-1,-65,-1,-66,-1,-53,-1,-49,-1,-39,-1,-30,-1,-20,-1,-11,-1,1,0,8,0,23,0,27,0,41,0,46,0,55,0,63,0,67,0,73,0,75,0,78,0,80,0,78,0,78,0,73,0,70,0,66,0,57,0,53,0,40,0,38,0,22,0,18,0,3,0,-5,-1,-14,-1,-25,-1,-33,-1,-44,-1,-50,-1,-59,-1,-62,-1,-72,-1,-70,-1,-79,-1,-77,-1,-77,-1,-79,-1,-72,-1,-74,-1,-65,-1,-62,-1,-54,-1,-46,-1,-39,-1,-28,-1,-22,-1,-8,-1,-1,-1,11,0,18,0,30,0,37,0,48,0,51,0,64,0,62,0,74,0,72,0,76,0,79,0,75,0,76,0,72,0,68,0,64,0,56,0,51,0,41,0,34,0,25,0,13,0,7,0,-7,-1,-13,-1,-23,-1,-35,-1,-40,-1,-52,-1,-53,-1,-67,-1,-61,-1,-80,-1,-67,-1,-81,-1,-73,-1,-77,-1,-72,-1,-70,-1,-65,-1,-59,-1,-54,-1,-44,-1,-39,-1,-27,-1,-21,-1,-8,-1,-1,-1,9,0,21,0,25,0,40,0,43,0,54,0,57,0,67,0,65,0,76,0,72,0,76,0,74,0,74,0,71,0,65,0,65,0,52,0,51,0,40,0,32,0,25,0,14,0,4,0,-3,-1,-16,-1,-22,-1,-34,-1,-40,-1,-48,-1,-55,-1,-61,-1,-67,-1,-68,-1,-75,-1,-71,-1,-78,-1,-70,-1,-73,-1,-67,-1,-64,-1,-58,-1,-52,-1,-44,-1,-35,-1,-31,-1,-15,-1,-13,-1,2,0,9,0,17,0,31,0,32,0,48,0,47,0,60,0,62,0,68,0,69,0,75,0,70,0,76,0,69,0,70,0,67,0,57,0,57,0,45,0,41,0,32,0,23,0,14,0,5,0,-5,-1,-14,-1,-22,-1,-33,-1,-37,-1,-50,-1,-51,-1,-63,-1,-60,-1,-73,-1,-66,-1,-76,-1,-70,-1,-72,-1,-71,-1,-65,-1,-63,-1,-55,-1,-52,-1,-41,-1,-38,-1,-26,-1,-18,-1,-10,-1,1,0,9,0,17,0,28,0,35,0,43,0,50,0,56,0,61,0,67,0,66,0,74,0,69,0,72,0,72,0,64,0,67,0,55,0,55,0,46,0,40,0,30,0,24,0,11,0,8,0,-7,-1,-12,-1,-23,-1,-30,-1,-40,-1,-44,-1,-55,-1,-56,-1,-64,-1,-66,-1,-68,-1,-73,-1,-68,-1,-73,-1,-64,-1,-68,-1,-58,-1,-57,-1,-49,-1,-41,-1,-36,-1,-26,-1,-18,-1,-9,-1,-1,-1,11,0,16,0,27,0,34,0,42,0,48,0,57,0,57,0,66,0,66,0,69,0,71,0,68,0,69,0,65,0,62,0,59,0,49,0,47,0,37,0,31,0,22,0,14,0,3,0,-3,-1,-15,-1,-19,-1,-33,-1,-34,-1,-50,-1,-46,-1,-61,-1,-58,-1,-67,-1,-66,-1,-71,-1,-65,-1,-73,-1,-62,-1,-66,-1,-57,-1,-56,-1,-45,-1,-44,-1,-32,-1,-26,-1,-20,-1,-4,-1,-5,-1,12,0,16,0,25,0,35,0,39,0,49,0,53,0,58,0,62,0,67,0,65,0,71,0,65,0,69,0,62,0,62,0,54,0,52,0,43,0,39,0}; }
	private static byte[] data21(){ return new byte[] {26,0,26,0,9,0,7,0,-5,-1,-14,-1,-19,-1,-31,-1,-37,-1,-42,-1,-52,-1,-54,-1,-60,-1,-64,-1,-65,-1,-67,-1,-68,-1,-66,-1,-64,-1,-63,-1,-56,-1,-53,-1,-48,-1,-38,-1,-35,-1,-24,-1,-17,-1,-10,-1,1,0,8,0,17,0,26,0,31,0,42,0,43,0,56,0,53,0,65,0,60,0,69,0,64,0,68,0,64,0,63,0,58,0,55,0,50,0,42,0,37,0,29,0,19,0,16,0,0,0,0,0,-16,-1,-17,-1,-32,-1,-34,-1,-44,-1,-48,-1,-54,-1,-58,-1,-62,-1,-64,-1,-66,-1,-65,-1,-65,-1,-63,-1,-60,-1,-56,-1,-52,-1,-44,-1,-42,-1,-28,-1,-30,-1,-11,-1,-14,-1,4,0,6,0,18,0,23,0,33,0,38,0,45,0,52,0,54,0,61,0,61,0,65,0,64,0,65,0,63,0,62,0,56,0,55,0,45,0,46,0,32,0,31,0,18,0,13,0,5,0,-5,-1,-11,-1,-22,-1,-27,-1,-36,-1,-39,-1,-51,-1,-50,-1,-59,-1,-59,-1,-63,-1,-63,-1,-65,-1,-63,-1,-61,-1,-60,-1,-53,-1,-52,-1,-42,-1,-41,-1,-29,-1,-26,-1,-15,-1,-9,-1,1,0,7,0,17,0,23,0,31,0,39,0,44,0,48,0,56,0,57,0,61,0,64,0,60,0,66,0,60,0,61,0,55,0,52,0,47,0,41,0,34,0,29,0,17,0,16,0,1,0,-2,-1,-13,-1,-20,-1,-26,-1,-35,-1,-40,-1,-48,-1,-48,-1,-60,-1,-55,-1,-64,-1,-60,-1,-64,-1,-60,-1,-63,-1,-54,-1,-55,-1,-49,-1,-41,-1,-42,-1,-26,-1,-26,-1,-16,-1,-6,-1,-2,-1,9,0,15,0,23,0,31,0,37,0,44,0,46,0,56,0,53,0,64,0,56,0,66,0,58,0,63,0,56,0,56,0,49,0,47,0,40,0,32,0,29,0,16,0,16,0,0,0,0,0,-15,-1,-18,-1,-26,-1,-34,-1,-40,-1,-43,-1,-54,-1,-50,-1,-61,-1,-57,-1,-62,-1,-60,-1,-61,-1,-58,-1,-57,-1,-51,-1,-47,-1,-44,-1,-34,-1,-33,-1,-21,-1,-15,-1,-10,-1,3,0,5,0,17,0,23,0,28,0,37,0,42,0,47,0,53,0,53,0,59,0,59,0,60,0,62,0,56,0,59,0,51,0,51,0,43,0,42,0,30,0,28,0,18,0,10,0,8,0,-8,-1,-6,-1,-20,-1,-18,-1,-26,-1,-26,-1,-29,-1,-30,-1,-29,-1,-28,-1,-26,-1,-24,-1,-22,-1,-16,-1,-16,-1,-9,-1,-10,-1,-3,-1,-4,-1}; }
	private static byte[] getData(){
		byte[] data = new byte[22040];
		System.arraycopy(data0(), 0, data, 0, 1024);
		System.arraycopy(data1(), 0, data, 1024, 1024);
		System.arraycopy(data2(), 0, data, 2048, 1024);
		System.arraycopy(data3(), 0, data, 3072, 1024);
		System.arraycopy(data4(), 0, data, 4096, 1024);
		System.arraycopy(data5(), 0, data, 5120, 1024);
		System.arraycopy(data6(), 0, data, 6144, 1024);
		System.arraycopy(data7(), 0, data, 7168, 1024);
		System.arraycopy(data8(), 0, data, 8192, 1024);
		System.arraycopy(data9(), 0, data, 9216, 1024);
		System.arraycopy(data10(), 0, data, 10240, 1024);
		System.arraycopy(data11(), 0, data, 11264, 1024);
		System.arraycopy(data12(), 0, data, 12288, 1024);
		System.arraycopy(data13(), 0, data, 13312, 1024);
		System.arraycopy(data14(), 0, data, 14336, 1024);
		System.arraycopy(data15(), 0, data, 15360, 1024);
		System.arraycopy(data16(), 0, data, 16384, 1024);
		System.arraycopy(data17(), 0, data, 17408, 1024);
		System.arraycopy(data18(), 0, data, 18432, 1024);
		System.arraycopy(data19(), 0, data, 19456, 1024);
		System.arraycopy(data20(), 0, data, 20480, 1024);
		System.arraycopy(data21(), 0, data, 21504, 536);
		return data;
	}
	/** Constructs a new AudioClip with the data from drum-17.wav. */
	public Drum17(){
		data = getData();
		format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, (float)(44100.0), 16, 1, 2, (float)(44100.0), false);
		lineInfo = new DataLine.Info(SourceDataLine.class, format, AudioSystem.NOT_SPECIFIED);
		try{ AudioSystem.getLine(lineInfo); }
		catch(IllegalArgumentException ex){ lineInfo = null; ex.printStackTrace(); }
		catch(LineUnavailableException e){}
	}
	/** A separate thread for playing drum-17.wav. */
	private class PlayThread extends Thread {
		private byte[] data;
		private AudioFormat format;
		private DataLine.Info lineInfo;
		private SourceDataLine line = null;
		private boolean playing = true;
		private float volume = 1;
		public PlayThread(byte[] d, AudioFormat f, DataLine.Info i, float v){ data = d; format = f; lineInfo = i; volume = v; }
		public void run(){
			try{
				line = (SourceDataLine) AudioSystem.getLine(lineInfo);
				line.open(format, AudioSystem.NOT_SPECIFIED);
				FloatControl vol = (FloatControl) line.getControl(FloatControl.Type.MASTER_GAIN);
				vol.setValue(volume);
				line.start();
				int written = 0;
				int available;
				while(written < data.length && playing){
					available = Math.min(line.available(), data.length - written);
					line.write(data, written, available);
					written += available;
				}
				int frames = data.length / format.getFrameSize();
				while(line.getFramePosition() < frames && playing) Thread.sleep(0);
			}
			catch(InterruptedException ex){ playing = false; }
			catch(LineUnavailableException ex){}
			if(line != null){ line.stop(); line.flush(); line.close(); }
			playing = false;
		}
		public void interrupt(){ playing = false; }
		public boolean isPlaying(){ return playing; }
	}
	/** A separate thread for looping play of drum-17.wav. */
	private class LoopThread extends Thread {
		private Drum17 clip;
		private boolean looping = true;
		public LoopThread(Drum17 c){ clip = c; }
		public void run(){
			while(looping){
				clip.play();
				while(clip.isPlaying() && looping){
					try{ Thread.sleep(0); }
					catch(InterruptedException ex){ looping = false; break; }
				}
			}
			if(!clip.isLooping()) clip.stop();
		}
		public void interrupt(){ looping = false; }
		public boolean isLooping(){ return looping; }
	}
	/** Plays drum-17.wav from the beginning, even if it is already playing or looping. */
	public void play() { play(0); }
	public void play(float balance){ if(lineInfo == null) return; doPlay(balance); }
	private synchronized void doPlay(float balance){
		doStopPlay();
		playThread = new PlayThread(data, format, lineInfo, balance);
		playThread.start();
	}
	/** Plays drum-17.wav continuously until stopped. */
	public void loop(){ if(lineInfo == null) return; doLoop(); }
	private synchronized void doLoop(){
		doStopLoop();
		loopThread = new LoopThread(this);
		loopThread.start();
	}
	/** Stops play and looping of drum-17.wav. */
	public void stop(){ if(lineInfo == null) return; doStop(); }
	private synchronized void doStop(){
		doStopPlay();
		doStopLoop();
	}
	private void doStopPlay(){
		if(playThread == null) return;
		if(playThread.isPlaying()) playThread.interrupt();
		playThread = null;
	}
	private void doStopLoop(){
		if(loopThread == null) return;
		if(loopThread.isLooping()) loopThread.interrupt();
		loopThread = null;
	}
	/** Tests if drum-17.wav is currently playing or looping.
	 * @return <tt>true</tt> if playing or looping, <tt>false</tt> otherwise */
	public boolean isPlaying(){ if(lineInfo == null) return false; return doIsPlaying(); }
	private synchronized boolean doIsPlaying(){
		if(loopThread == null && playThread == null) return false;
		else if(loopThread == null) return playThread.isPlaying();
		else if(playThread == null) return loopThread.isLooping();
		else return loopThread.isLooping() && playThread.isPlaying();
	}
	/** Tests if drum-17.wav is currently looping.
	 * @return <tt>true</tt> if looping, <tt>false</tt> otherwise */
	public boolean isLooping(){ if(lineInfo == null) return false; return doIsLooping(); }
	private synchronized boolean doIsLooping(){
		if(loopThread == null) return false;
		else return loopThread.isLooping();
	}
}